Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Get started
Connect with Matter
Alexa Connect Kit
Add-ons
Certify
Resources
Skip to main content
If Alexa sends a request to your smart home add-on and you can’t handle the request successfully, respond with an Alexa.ErrorResponse event. An unsuccessful response means that the endpoint wasn’t able to complete the requested action. Specify the type of error and why it occurred. You can send the response synchronously or asynchronously. If you respond asynchronously, include a correlation token and a scope with an authorization token. Use the Alexa.ErrorResponse event for the generic errors listed in error type values. If appropriate, use one of the following more specific error events instead: If you can handle a directive successfully, respond with an Alexa.Response event instead.

ErrorResponse event

In the payload for the Alexa.ErrorResponse, specify the type of the error and include a message with information about the error. For the list of error types, see error type values.

ErrorResponse event format

Synchronous error response

If you respond to the directive from your Amazon Web Services (AWS) Lambda function, send a synchronous response. Include the correlationToken set to the value from the directive request. The following example shows a synchronous error response that you send to Alexa. For the list of error types, see error type values.

Asynchronous error response

If you respond to the directive from your device cloud, send an asynchronous response to the Alexa event gateway. Include the correlation token and a scope with an authorization token. For details, see Send Events to the Event Gateway. When you send an asynchronous Alexa.ErrorResponse to the gateway, Alexa sends an HTTP status code to indicate success or failure. The following example shows an asynchronous error response that you send to the Alexa event gateway. For the list of error types, see error type values.

HTTP status codes

The following table shows the HTTP status code values that your add-on might receive from the Alexa event gateway. If you receive an error, the response body contains the error code and description. Use these fields for logging only.
StatusPayload codeDescription
202 Accepted—Request is authorized and the message is a syntactically valid event. The gateway accepted the event for further logical validation and processing.
400 Bad RequestINVALID_REQUEST_EXCEPTIONMessage is not valid due to missing fields, incorrect values, or malformed JSON. Check your messages against the documentation to verify that your message contains all the required fields.
401 UnauthorizedINVALID_ACCESS_TOKEN_EXCEPTIONMessage didn’t include the authorization token or the token is expired, malformed, or not valid. Refresh your token and retry the request. If a user disables your add-on, that also invalidates the access token.
403 ForbiddenSKILL_DISABLED_EXCEPTIONThe customer disabled your add-on. Stop sending events for the customer and delete any stored tokens in your system.
403 ForbiddenSKILL_NEVER_ENABLED_EXCEPTIONYou’re not allowed access to the event gateway. Make sure that you’re sending the events to the correct regional endpoint. For example, send events in North America to the North American endpoint. Otherwise, the customer never enabled your add-on.
403 ForbiddenINSUFFICIENT_PERMISSION_EXCEPTIONToken doesn’t have the required permissions. Make sure that the add-on has permission to send Alexa events. For details, see Request Access to the Alexa Event Gateway.
404 Not FoundACCOUNT_NOT_FOUND_EXCEPTIONAccount record associated with this directed identifier doesn’t exist or has expired. This error can occur if the event was sent too late or with directed identifier that’s not valid. Verify that the directed identifier and authorization code are correct.
404 Not FoundSKILL_NOT_FOUND_EXCEPTIONSkill ID associated with this token wasn’t found. This error occurs when user’s access token was generated when the add-on was in different stage, such as certification. Try disabling and re-enabling the add-on for this user.
413 Payload Too LargeREQUEST_ENTITY_TOO_LARGE_EXCEPTIONSize of the event payload is too large. The maximum number of endpoints allowed in a request is 300. Send your message with smaller payloads.
429 Too Many RequestsTHROTTLING_EXCEPTIONNumber of requests is too high. Resend the message up to three times, with at least a one-second interval between each send attempt.
500 Internal Server ErrorINTERNAL_SERVICE_EXCEPTIONError occurred with Alexa, and the message wasn’t processed. Resend the message up to three times, with at least a one-second interval between each send attempt. If problems persist, contact Amazon Support.
503 Service UnavailableSERVICE_UNAVAILABLE_EXCEPTIONAlexa couldn’t accept the message. Resend the message up to three times, with at least a one-second interval between each attempt. If the problem persists, contact Amazon Support.
Example error response body
The following example shows an error response.

ErrorResponse event payload properties

Send an Alexa.ErrorResponse in an Event object. Include the following information in the event.payload parameter.
PropertyDescriptionTypeRequired
typeType of error. Alexa shares this with the customer.StringYes
messageDescriptive message for the error for logging and debugging purposes only.
Alexa doesn’t share this with the customer.
StringYes

Error type values

The following table shows the valid error types and the corresponding error interface to return. For details about the parameters for each error type, see the referenced interface. For troubleshooting tips for specific error types, see Troubleshooting Guide for Smart Home Add-ons.
ValueDescriptionInterface
ALREADY_IN_OPERATIONThe endpoint can’t perform the requested operation because the endpoint is already in operation.Alexa.ErrorResponse
AUTHORIZATION_REQUIREDThe current state of the security system is ARMED_AWAY, and the user tries to re-arm the system as ARMED_STAY or ARMED_NIGHT.Alexa.SecurityPanelController.ErrorResponse
BRIDGE_UNREACHABLEThe bridge is unreachable or offline. For example, the bridge is off, disconnected from the customer’s local area network, or connectivity between the bridge and the device cloud was lost. When you respond to a ReportState directive, there might be times when you should return a StateReport instead of this error. For details, see Alexa.EndpointHealth.Alexa.ErrorResponse
BYPASS_NEEDEDThe security panel has open zones that the user must bypass before you can arm the security system.Alexa.SecurityPanelController.ErrorResponse
CLOUD_CONTROL_DISABLEDThe user can’t control the device over the internet, and should control the device manually instead.Alexa.ErrorResponse
CHILD_LOCKThe child lock on the appliance is enabled.Alexa.Cooking.ErrorResponse
CONFIGURATION_UPDATE_NOT_ALLOWEDConfiguration changes aren’t allowed by the thermostat device. To accept configuration changes, the customer must interact with the device directly.Alexa.ThermostatController.Configuration.ErrorResponse
COOK_DURATION_TOO_LONGThe requested duration is too long for the appliance to run in a safe manner.Alexa.Cooking.ErrorResponse
COOLING_LOCKOUT_TEMPERATURE_VALUE_OUT_OF_RANGEThe cooling lockout temperature is outside the accepted range.Alexa.ThermostatController.Configuration.ErrorResponse
COOLING_STAGES_EXCEEDS_LIMITThe number of cooling stages exceeds the limit.Alexa.ThermostatController.Configuration.ErrorResponse
DATA_DELETION_NOT_SUPPORTEDThe device doesn’t support data deletion.Alexa.DataController.ErrorResponse
DATA_RETRIEVAL_NOT_SUPPORTEDThe device doesn’t support data retrieval.Alexa.DataController.ErrorResponse
DEVICE_STUCKThe device is physically obstructed and unable to perform the requested action.Alexa.ErrorResponse
DISABLED_BY_USEREndpoint can’t provide a snapshot because the customer disabled the snapshot feature in the camera app.Alexa.SmartVision.SnapshotProvider.ErrorResponse
DO_NOT_DISTURB_MODEThe endpoint is in do-not-disturb mode and can’t respond to the requested directive.Alexa.ErrorResponse
DOOR_CLOSED_TOO_LONGThe door wasn’t opened and closed recently and the appliance is likely empty. For example, an attempt to start cooking when no food is present.Alexa.Cooking.ErrorResponse
DOOR_OPENThe appliance door is open. For example, an attempt to start cooking when the appliance door is open.Alexa.Cooking.ErrorResponse
DUAL_SETPOINTS_UNSUPPORTEDThe thermostat doesn’t support dual setpoints in the current mode.Alexa.ThermostatController.ErrorResponse
ENDPOINT_BUSYThe endpoint can’t handle the directive because it’s performing another action. The action might be a request to Alexa or a manual interaction.Alexa.ErrorResponse
ENDPOINT_CONTROL_UNAVAILABLEThe endpoint control isn’t available at this time, for example, due to no connectivity to a device. When you send this error response, include reason in the payload.Alexa.ErrorResponse
ENDPOINT_LOW_POWERThe endpoint can’t handle the directive because the battery power is too low.Alexa.ErrorResponse
ENDPOINT_UNREACHABLEThe endpoint is unreachable or offline. For example, the endpoint is turned off, disconnected from the customer’s local area network, or connectivity between the endpoint and bridge or the endpoint and the device cloud was lost. When you respond to a ReportState directive, there might be times when you should return a StateReport instead of this error. For more details, see Alexa.EndpointHealth.Alexa.ErrorResponse
EXPIRED_AUTHORIZATION_CREDENTIALThe authorization credential provided by Alexa has expired. For example, the OAuth 2.0 access token for the customer has expired.Alexa.ErrorResponse
FAILED_TO_BOOTSTRAP_COMMISSIONING_PROCESSEndpoint is reachable but is unable to accept local connection. For Matter, it might mean that the endpoint failed to put the device into commissioning mode.Alexa.Commissionable.ReportCommissioningInformation
FIRMWARE_OUT_OF_DATEThe endpoint can’t handle the directive because it’s firmware is out of date.Alexa.ErrorResponse
HARDWARE_MALFUNCTIONThe endpoint can’t handle the directive because it has experienced a hardware malfunction.Alexa.ErrorResponse
HEATING_LOCKOUT_TEMPERATURE_VALUE_OUT_OF_RANGEThe heating lockout temperature is outside the accepted range.Alexa.ThermostatController.Configuration.ErrorResponse
HEATING_STAGES_EXCEEDS_LIMITThe number of heating stages exceeds the limit.Alexa.ThermostatController.Configuration.ErrorResponse
INSUFFICIENT_PERMISSIONSAlexa doesn’t have permissions to perform the specified action on the endpoint.Alexa.ErrorResponse
INSUFFICIENT_RESOURCETo complete the requested operation, the device requires a resource to be refilled or replaced. When you send this error response, include resourceType in the payload to describe the resource.Alexa.ErrorResponse
INSUFFICIENT_SPACEThermostat has insufficient space. This error might occur when the user set too many schedules and exceeded the device limit.Alexa.ThermostatController.Schedule.ErrorResponse
INTERNAL_ERRORAn error occurred that isn’t described by one of the other error types. For example, a runtime exception occurred. Amazon recommends that you always send a more specific error type, if possible. For add-on errors, the more accurate the error type specified, the better Alexa can guide customers through appropriate steps and a relevant speech response.Alexa.ErrorResponse
INVALID_AUTHORIZATION_CREDENTIALThe authorization credential provided by Alexa is invalid. For example, the OAuth 2.0 access token isn’t valid for the customer’s device cloud account.Alexa.ErrorResponse
INVALID_AUXILIARY_HEATING_SYSTEM_TYPEThe specified auxiliary heating system isn’t support by the device.Alexa.ThermostatController.Configuration.ErrorResponse
INVALID_DIRECTIVEThe directive isn’t supported by the add-on, or the directive is malformed.Alexa.ErrorResponse
INVALID_SYSTEM_TYPEThe heating, ventilation, and air conditioning (HVAC) system type isn’t support by the device.Alexa.ThermostatController.Configuration.ErrorResponse
INVALID_TARGET_STATEThe target state isn’t support by the device.Alexa.ThermostatController.Configuration.ErrorResponse
INVALID_TEMPERATURE_SCALEThe temperature scale isn’t support by the device.Alexa.ThermostatController.Configuration.ErrorResponse
INVALID_TERMINAL_CONNECTIONOne or more terminal connections are invalid.Alexa.ThermostatController.Configuration.ErrorResponse
INVALID_VALUEThe directive contains a value that’s not valid for the target endpoint. For example, an invalid heating mode, channel, or requested object class.Alexa.ErrorResponse
Alexa.SmartVision.ObjectDetectionSensor.ErrorResponse
MAINTENANCE_REQUIREDThe device requires the maintenance before starting the operation. When you send this error response, optionally include maintenanceAction in the payload to describe the action to fix the device.Alexa.ErrorResponse
MAX_COMMISSIONING_LIMIT_REACHEDEndpoint was already commissioned with the maximum number of local hubs.Alexa.Commissionable.ReportCommissioningInformation
MISSING_SETUP_INFORMATIONRequired information for setup is missing from the directive.Alexa.ThermostatController.Configuration.ErrorResponse
NO_SUCH_ENDPOINTThe endpoint doesn’t exist, or no longer exists.Alexa.ErrorResponse
NOT_CALIBRATEDThe endpoint can’t handle the directive because it’s in a calibration phase, such as warming up, or a user configuration isn’t set up yet on the device.Alexa.ErrorResponse
NOT_IN_OPERATIONThe endpoint isn’t in operation. For example, a smart home add-on can return a NOT_IN_OPERATION error when it receives a RESUME directive but the endpoint is the OFF mode.Alexa.ErrorResponse
NOT_READYThe security panel isn’t ready for arming and disarming. Use this error type when a user tries to control the security panel when the panel is in installation mode.Alexa.SecurityPanelController.ErrorResponse
NOT_SUPPORTED_IN_CURRENT_MODEThe endpoint can’t set the device to the specified value because of its current mode of operation. When you send this error response, includecurrentDeviceMode in the payload. For an example, see NOT_SUPPORTED_IN_CURRENT_MODE.Alexa.ErrorResponse
NOT_SUPPORTED_WITH_CURRENT_BATTERY_CHARGE_STATEThe endpoint can’t fulfill the request due to the current battery state. When you send this error response, include currentChargeState and, optionally, currentChargeLevelInPercentage in the payload. For an example, see NOT_SUPPORTED_WITH_CURRENT_BATTERY_CHARGE_STATE.Alexa.ErrorResponse
OBSTACLE_DETECTEDThe endpoint can’t handle the directive because an obstacle is detected, such as when a user tries to close a door and there is a person or object blocking the door.Alexa.Safety.ErrorResponse
PARTNER_APPLICATION_REDIRECTIONThe endpoint can’t handle the request. On receipt of this error, Alexa prompts the customer to view the partner app.Alexa.ErrorResponse
POWER_LEVEL_NOT_SUPPORTEDThe endpoint can’t handle the directive because it doesn’t support the requested power level.Alexa.ErrorResponse
PREHEAT_REQUIREDThe appliance must be preheated.Alexa.Cooking.ErrorResponse
PROBE_REQUIREDThe temperature probe must be inserted.Alexa.Cooking.ErrorResponse
RATE_LIMIT_EXCEEDEDThe requests exceed the maximum rate at which an endpoint or bridge can process directives.Alexa.ErrorResponse
REMOTE_START_NOT_SUPPORTEDCooking remotely isn’t supported by the device.Alexa.Cooking.ErrorResponse
REMOVE_PROBEThe temperature probe must be removed.Alexa.Cooking.ErrorResponse
REMOTE_START_DISABLEDCooking remotely was disabled and must be re-enabled before cooking.Alexa.Cooking.ErrorResponse
REQUESTED_SETPOINTS_TOO_CLOSEThe setpoints are too close together.Alexa.ThermostatController.ErrorResponse
SAFETY_BEAM_BREACHEDThe endpoint can’t handle the directive because something breached the safety beam, such as when an elevator door is closing and a person crosses the safety beam of the door.Alexa.Safety.ErrorResponse
SUBSCRIPTION_REQUIREDThe requested object class wasn’t enabled because a subscription is required.Alexa.SmartVision.ObjectDetectionSensor.ErrorResponse
Alexa.SmartVision.SnapshotProvider.ErrorResponse
TEMPERATURE_VALUE_OUT_OF_RANGEThe specified temperature value is outside the acceptable temperature range. When you send this error response, optionally include a validRange object in the payload that indicates the acceptable temperature range. For an example, see TEMPERATURE_VALUE_OUT_OF_RANGE.Alexa.ErrorResponse
THERMOSTAT_IS_OFFThe thermostat is off and can’t be turned on.Alexa.ThermostatController.ErrorResponse
TOO_MANY_FAILED_ATTEMPTSThe number of allowed failed attempts, such as when entering a password, was exceeded.Alexa.ErrorResponse
TRIPLE_SETPOINTS_UNSUPPORTEDThe thermostat doesn’t support triple setpoints in the current mode.Alexa.ThermostatController.ErrorResponse
UNABLE_TO_CHARGEDue to a technical issue, the endpoint can’t charge and therefore can’t perform the directive request.Alexa.ErrorResponse
UNAUTHORIZEDThe PIN code is incorrect.Alexa.SecurityPanelController.ErrorResponse
UNCLEARED_ALARMThe security panel has an active alarm and the user tries to arm it.Alexa.SecurityPanelController.ErrorResponse
UNSUPPORTED_THERMOSTAT_MODEThe thermostat doesn’t support the specified mode.Alexa.ThermostatController.ErrorResponse
UNCLEARED_TROUBLEThe security panel has a trouble condition.Alexa.SecurityPanelController.ErrorResponse
UNWILLING_TO_SET_SCHEDULEThe thermostat can’t set the specified schedule.Alexa.ThermostatController.ErrorResponse
UNWILLING_TO_SET_VALUEThe thermostat can’t set the value because it can damage the device or appliance.Alexa.ThermostatController.ErrorResponse
VALUE_OUT_OF_RANGEThe specified value is outside the acceptable range. For example, you can use this error when a customer requests a percentage value over 100. For temperature values, use TEMPERATURE_VALUE_OUT_OF_RANGE instead. When you send this error response, optionally include a validRange object in the payload that indicates the acceptable range. For an example, see VALUE_OUT_OF_RANGE.Alexa.ErrorResponse

ErrorResponse examples

The following examples show the payload for error types that include extra properties.

ENDPOINT_CONTROL_UNAVAILABLE

The following example shows the error response for the ENDPOINT_CONTROL_UNAVAILABLE error type. You include a reason string in the payload to specify why control isn’t available. For the list of error types, see error type values.

ENDPOINT_LOW_POWER

The following example shows the error response for the ENDPOINT_LOW_POWER error type.

NOT_SUPPORTED_IN_CURRENT_MODE

The following example shows the error response for the NOT_SUPPORTED_IN_CURRENT_MODE error type.

NOT_SUPPORTED_WITH_CURRENT_BATTERY_CHARGE_STATE

The following example shows the error response for the NOT_SUPPORTED_WITH_CURRENT_BATTERY_CHARGE_STATE error type.

TEMPERATURE_VALUE_OUT_OF_RANGE

The following example shows the error response for the TEMPERATURE_VALUE_OUT_OF_RANGE error type. Include a validRange object in the payload to specify the minimum and maximum acceptable temperatures.

VALUE_OUT_OF_RANGE

The following example shows the error response for the VALUE_OUT_OF_RANGE error type. Include a validRange object in the payload to specify the minimum and maximum acceptable values for a setting.

Properties and objects

Some error types include the following objects in the payload. For details, see error type values.

CurrentChargeLevelInPercentage

When you send a NOT_SUPPORTED_WITH_CURRENT_BATTERY_CHARGE_STATE error response, include the currentChargeLevelInPercentage property in the payload. The currentChargeLevelInPercentage indicates the battery level in percentage. The property is an Integer with valid values: 0–100. This property is optional. The following example shows the CurrentChargeLevelInPercentage property.

CurrentChargeState values

When you send a NOT_SUPPORTED_WITH_CURRENT_BATTERY_CHARGE_STATE error response, include the currentChargeState property in the payload. The currentChargeState indicates the current state of the battery. The property is a String.
CurrentChargeState valueDescription
ALREADY_CHARGED_TO_REQUIRED_LEVELThe battery level is more than the requested level.
CURRENTLY_CHARGINGThe battery is charging.
FULLY_CHARGEDThe battery level is 100%.
NOT_CONNECTED_TO_POWERThe battery isn’t connected to a charger.

CurrentDeviceMode

When you send a NOT_SUPPORTED_IN_CURRENT_MODE error response, include the CurrentDeviceMode property in the payload. The CurrentDeviceMode indicates why the device can’t be set to the new value. The property is a String.
CurrentDeviceMode valueDescription
ASLEEPThe device is asleep.
COLORThe device is currently set to a color.
DEMAND_RESPONSEThe device is actively participating in a demand response event.
ECOThe device is in eco mode to reduce energy consumption.
NOT_PROVISIONEDThe device isn’t provisioned.
VACATIONThe device is in vacation mode to reduce energy consumption.
OTHERNot supported for another reason.

MaintenanceAction

When you send a MAINTENANCE_REQUIRED error response, include an optional maintenanceAction property in the payload to indicate required repair. The property is a String.
MaintenanceAction valueDescription
EMPTY_BINFor devices, such as robotic vacuum cleaners with a bin that must be emptied manually.

Reason

When you send an ENDPOINT_CONTROL_UNAVAILABLE error response, include a reason property in the payload to indicate why endpoint control isn’t available. The property is a String.
Reason valueDescription
DEEP_SLEEP_MODEDeep sleep mode is a user-defined setting in an endpoint. The customer might solve this issue by turning off this mode.
OUT_OF_NETWORK_CONNECTIVITYThe endpoint is outside the range of the network connectivity service.
NO_CONNECTIVITY_PACKAGE_ENABLEDThe endpoint requires the customer to purchase or enable an internet plan.
UNKNOWNThe device cloud can’t connect to the endpoint for an unknown reason.

ResourceType

When you send an INSUFFICIENT_RESOURCE error response, include a resourceType property in the payload to indicate the resource to replace. The property is a String.
ResourceType valueDescription
WATERFor devices, such as robotic vacuum cleaners that mop, the water tank is low or empty.

ValidRange object

When you send a VALUE_OUT_OF_RANGE error response, include a validRange object in the payload to indicate the minimum and maximum acceptable values. This property is optional. The following example shows the ValidRange object.

ValidRange object with temperatures

When you send a TEMPERATURE_VALUE_OUT_OF_RANGE error response, include a validRange object in the payload to indicate the minimum and maximum acceptable temperatures. The minimum and maximum values contain temperature objects. This property is optional. The following example shows the ValidRange object. with temperature.

Alexa errors

Errors can occur on the Alexa side after you send a response. Alexa might timeout waiting for the response or encounter errors when processing the response payload. These errors prevent completion of the user’s request. Alexa errors include the following exceptions:
  • SKILL_RESPONSE_TIMEOUT_EXCEPTION – Exception thrown when an add-on times out on an Alexa request to the add-on.
  • INVALID_SKILL_RESPONSE_EXCEPTION – Exception thrown when Alexa receives a response from the add-on that isn’t valid.
  • INVALID_ACCESS_TOKEN_EXCEPTION – Exception thrown by the Alexa event gateway when an event from your add-on includes an access token that’s expired, malformed, or not valid, or the token was missing. Retry the request one time.
  • SKILL_DISABLED_EXCEPTION – Exception thrown by the Alexa event gateway when the customer disabled your add-on and revoked authorization. You must stop sending events for this customer and delete any stored tokens for the customer in your system.
  • SKILL_NEVER_ENABLED_EXCEPTION – Exception thrown by the Alexa event gateway when the customer never enabled the skill, or you sent the event to the wrong regional endpoint. Do not retry the request.
You can view Alexa errors on the Capability Directives page in the Analytics tab of the Alexa developer console. For more details, see Error metrics.
Last modified on August 11, 2026