# Protect your schema from unexpected data

> For AI agents: a documentation index is available at [/docs/llms.txt](/docs/llms.txt). Append `.md` to any page URL for markdown, or send `Accept: text/markdown`.

Schema settings control how Amplitude handles data that violates your schema. A schema violation happens when Amplitude receives data that your schema doesn't account for, such as an event you didn't plan or a property value with an unexpected type. You configure a response to three types of schema violation: unplanned event types, unplanned event or user properties, and unplanned property values. For each type, Amplitude either marks the data as unexpected and ingests it, or rejects it.

Use schema settings when you want Amplitude to mark or reject data that violates your schema at ingestion. To monitor your event stream for invalid, missing, or out-of-date events without changing how Amplitude ingests data, use [Observe](https://amplitude.com/docs/data/validate-events) instead. Find your schema settings by going to Amplitude Data and navigating to _Settings > Schema Settings_.

## Unplanned event types

Sometimes, Amplitude may receive an event that isn't part of your schema, or that you didn't plan earlier. This is an **unplanned event type**. You can configure Amplitude to respond in these ways:

- **Mark As Unexpected**: Amplitude ingests the event, triggers a warning, and sends a notification to the designated subscribers. The event's category in drop-downs is "Unexpected" until you approve it.
- **Reject**: Amplitude rejects the event and sends a notification to the designated subscribers. Amplitude doesn't store the event or its properties.

## Unplanned event or user properties

When Amplitude encounters an event or user property that isn't part of your schema, or that you didn't plan earlier, it considers the property to be an unplanned event or user property. You can configure Amplitude to respond in the following ways:

- **Mark As Unexpected**: Amplitude ingests the property, triggers a warning, and sends a notification to the designated subscribers.
- **Reject**: Amplitude rejects the property and sends a notification to the designated subscribers. Amplitude stores the event, but not the properties.

## Unplanned event or user property values

When Amplitude receives an event property value that isn't part of your schema, or that you didn't plan earlier, it considers the value an unplanned property value. For example, an event property value arrives as a string, but your schema expected a number. You can configure Amplitude to respond to an unplanned property value in the following ways:

- **Mark As Unexpected**: Amplitude ingests the property, triggers a warning, and sends a notification to the designated subscribers.
- **Reject**: Amplitude rejects the property, triggers a warning, and sends a notification to the designated subscribers. Amplitude stores the event, but not the properties.

If Amplitude rejects your event data and you want to ingest it, add the events or properties to your schema by planning a new event or property.

## View validation errors

After you initialize your schema and define your expected events and event properties, your schema can validate live data coming into Amplitude. If you configured your schema to trigger a warning for unexpected events or properties, Amplitude logs an error in the validation errors panel.

View validation errors by going to Amplitude Data and navigating to _Settings > Schema Settings > Validation Errors_. Any errors triggered in the last 24 hours appear on this page, whether or not you've since approved or rejected the event or property. If no errors appear on the validation page, there haven't been any violations in the past 24 hours. This doesn't mean you've fixed every violation; it only means Amplitude hasn't encountered them in that time.

Select **Subscribe** to set up email alerts for validation errors.

## Manage subscribers

You can designate specific users to receive email notifications of any schema violations. Select **Manage Subscribers** at the top right of your schema options.
