Status Codes

Generic Messages

These messages are system wide.

#define EMBER_SUCCESS (x00)
The generic "no error" message.
#define EMBER_ERR_FATAL (x01)
The generic "fatal error" message.
#define EMBER_BAD_ARGUMENT (x02)
An invalid value was passed as an argument to a function.
#define EMBER_NOT_FOUND (x03)
The requested information was not found.
#define EMBER_EEPROM_MFG_STACK_VERSION_MISMATCH (x04)
The manufacturing and stack token format in non-volatile memory is different than what the stack expects (returned at initialization).
#define EMBER_INCOMPATIBLE_STATIC_MEMORY_DEFINITIONS (x05)
The static memory definitions in ember-static-memory.h are incompatible with this stack version.
#define EMBER_EEPROM_MFG_VERSION_MISMATCH (x06)
The manufacturing token format in non-volatile memory is different than what the stack expects (returned at initialization).
#define EMBER_EEPROM_STACK_VERSION_MISMATCH (x07)
The stack token format in non-volatile memory is different than what the stack expects (returned at initialization).

Packet Buffer Module Errors

#define EMBER_NO_BUFFERS (x18)
There are no more buffers.

Serial Manager Errors

#define EMBER_SERIAL_INVALID_BAUD_RATE (x20)
Specifies an invalid baud rate.
#define EMBER_SERIAL_INVALID_PORT (x21)
Specifies an invalid serial port.
#define EMBER_SERIAL_TX_OVERFLOW (x22)
Tried to send too much data.
#define EMBER_SERIAL_RX_OVERFLOW (x23)
There wasn't enough space to store a received character and the character was dropped.
#define EMBER_SERIAL_RX_FRAME_ERROR (x24)
Detected a UART framing error.
#define EMBER_SERIAL_RX_PARITY_ERROR (x25)
Detected a UART parity error.
#define EMBER_SERIAL_RX_EMPTY (x26)
There is no received data to process.
#define EMBER_SERIAL_RX_OVERRUN_ERROR (x27)
The receive interrupt was not handled in time and a character was dropped.

MAC Errors

#define EMBER_MAC_TRANSMIT_QUEUE_FULL (x39)
The MAC transmit queue is full.
#define EMBER_MAC_UNKNOWN_HEADER_TYPE (x3A)
MAC header FCF error on receive.
#define EMBER_MAC_ACK_HEADER_TYPE (x3B)
MAC ACK header received.
#define EMBER_MAC_SCANNING (x3D)
The MAC can't complete this task because it is scanning.
#define EMBER_MAC_NO_DATA (x31)
No pending data exists for a data poll.
#define EMBER_MAC_JOINED_NETWORK (x32)
Attempts to scan when joined to a network.
#define EMBER_MAC_BAD_SCAN_DURATION (x33)
Scan duration must be 0 to 14 inclusive. Tried to scan with an incorrect duration value.
#define EMBER_MAC_INCORRECT_SCAN_TYPE (x34)
emberStartScan was called with an incorrect scan type.
#define EMBER_MAC_INVALID_CHANNEL_MASK (x35)
emberStartScan was called with an invalid channel mask.
#define EMBER_MAC_COMMAND_TRANSMIT_FAILURE (x36)
Failed to scan the current channel because the relevant MAC command could not be transmitted.
#define EMBER_MAC_NO_ACK_RECEIVED (x40)
An ACK was expected following the transmission but the MAC level ACK was never received.
#define EMBER_MAC_RADIO_NETWORK_SWITCH_FAILED (x41)
MAC failed to transmit a message because it could not successfully perform a radio network switch.
#define EMBER_MAC_INDIRECT_TIMEOUT (x42)
An indirect data message timed out before a poll requested it.

Simulated EEPROM Errors

#define EMBER_SIM_EEPROM_ERASE_PAGE_GREEN (x43)
The Simulated EEPROM is telling the application that at least one flash page to be erased. The GREEN status means the current page has not filled above the ::ERASE_CRITICAL_THRESHOLD.
#define EMBER_SIM_EEPROM_ERASE_PAGE_RED (x44)
The Simulated EEPROM is telling the application that at least one flash page must be erased. The RED status means the current page has filled above the ::ERASE_CRITICAL_THRESHOLD.
#define EMBER_SIM_EEPROM_FULL (x45)
The Simulated EEPROM has run out of room to write new data and the data trying to be set has been lost. This error code is the result of ignoring the ::SIM_EEPROM_ERASE_PAGE_RED error code.
#define EMBER_SIM_EEPROM_INIT_1_FAILED (x48)
Attempt 1 to initialize the Simulated EEPROM has failed.
#define EMBER_SIM_EEPROM_INIT_2_FAILED (x49)
Attempt 2 to initialize the Simulated EEPROM has failed.
#define EMBER_SIM_EEPROM_INIT_3_FAILED (x4A)
Attempt 3 to initialize the Simulated EEPROM has failed.
#define EMBER_SIM_EEPROM_REPAIRING (x4D)
The Simulated EEPROM is repairing itself.

Flash Errors

#define EMBER_ERR_FLASH_WRITE_INHIBITED (x46)
A fatal error has occurred while trying to write data to the Flash. The target memory attempting to be programmed is already programmed. The flash write routines were asked to flip a bit from a 0 to 1, which is physically impossible and the write was therefore inhibited. The data in the Flash cannot be trusted after this error.
#define EMBER_ERR_FLASH_VERIFY_FAILED (x47)
A fatal error has occurred while trying to write data to the Flash and the write verification has failed. Data in the Flash cannot be trusted after this error and it is possible this error is the result of exceeding the life cycles of the Flash.
#define EMBER_ERR_FLASH_PROG_FAIL (x4B)
#define EMBER_ERR_FLASH_ERASE_FAIL (x4C)

Bootloader Errors

#define EMBER_ERR_BOOTLOADER_TRAP_TABLE_BAD (x58)
The bootloader received an invalid message (failed attempt to go into bootloader).
#define EMBER_ERR_BOOTLOADER_TRAP_UNKNOWN (x59)
The bootloader received an invalid message (failed attempt to go into the bootloader).
#define EMBER_ERR_BOOTLOADER_NO_IMAGE (x05A)
The bootloader cannot complete the bootload operation because either an image was not found or the image exceeded memory bounds.

Transport Errors

#define EMBER_DELIVERY_FAILED (x66)
The APS layer attempted to send or deliver a message and failed.
#define EMBER_BINDING_INDEX_OUT_OF_RANGE (x69)
This binding index is out of range for the current binding table.
#define EMBER_ADDRESS_TABLE_INDEX_OUT_OF_RANGE (x6A)
This address table index is out of range for the current address table.
#define EMBER_INVALID_BINDING_INDEX (x6C)
An invalid binding table index was given to a function.
#define EMBER_INVALID_CALL (x70)
The API call is not allowed given the current state of the stack.
#define EMBER_COST_NOT_KNOWN (x71)
The link cost to a node is not known.
#define EMBER_MAX_MESSAGE_LIMIT_REACHED (x72)
The maximum number of in-flight messages (i.e., ::EMBER_APS_UNICAST_MESSAGE_COUNT) has been reached.
#define EMBER_MESSAGE_TOO_LONG (x74)
The message to be transmitted is too big to fit into a single over-the-air packet.
#define EMBER_BINDING_IS_ACTIVE (x75)
The application is trying to delete or overwrite a binding that is in use.
#define EMBER_ADDRESS_TABLE_ENTRY_IS_ACTIVE (x76)
The application is trying to overwrite an address table entry that is in use.
#define EMBER_TRANSMISSION_SUSPENDED (x77)
An attempt was made to transmit during the suspend period.

Green Power status codes

#define EMBER_MATCH (x78)
Security match.
#define EMBER_DROP_FRAME (x79)
Drop frame.
#define EMBER_PASS_UNPROCESSED (x7A)
Security match.
#define EMBER_TX_THEN_DROP (x7B)
Security match.
#define EMBER_NO_SECURITY (x7C)
Security match.
#define EMBER_COUNTER_FAILURE (x7D)
Security match.
#define EMBER_AUTH_FAILURE (x7E)
Security match.
#define EMBER_UNPROCESSED (x7F)
Security match.

HAL Module Errors

#define EMBER_ADC_CONVERSION_DONE (x80)
The conversion is complete.
#define EMBER_ADC_CONVERSION_BUSY (x81)
The conversion cannot be done because a request is being processed.
#define EMBER_ADC_CONVERSION_DEFERRED (x82)
The conversion is deferred until the current request has been processed.
#define EMBER_ADC_NO_CONVERSION_PENDING (x84)
No results are pending.
#define EMBER_SLEEP_INTERRUPTED (x85)
Sleeping (for a duration) has been abnormally interrupted and exited prematurely.

PHY Errors

#define EMBER_PHY_TX_UNDERFLOW (x88)
The transmit hardware buffer underflowed.
#define EMBER_PHY_TX_INCOMPLETE (x89)
The transmit hardware did not finish transmitting a packet.
#define EMBER_PHY_INVALID_CHANNEL (x8A)
An unsupported channel setting was specified.
#define EMBER_PHY_INVALID_POWER (x8B)
An unsupported power setting was specified.
#define EMBER_PHY_TX_BUSY (x8C)
The requested operation cannot be completed because the radio is currently busy, either transmitting a packet or performing calibration.
#define EMBER_PHY_TX_CCA_FAIL (x8D)
The transmit attempt failed because all CCA attempts indicated that the channel was busy.
#define EMBER_PHY_OSCILLATOR_CHECK_FAILED (x8E)
The software installed on the hardware doesn't recognize the hardware radio type.
#define EMBER_PHY_ACK_RECEIVED (x8F)
The expected ACK was received after the last transmission.

Return Codes Passed to emberStackStatusHandler()

See also emberStackStatusHandler() .

#define EMBER_NETWORK_UP (x90)
The stack software has completed initialization and is ready to send and receive packets over the air.
#define EMBER_NETWORK_DOWN (x91)
The network is not operating.
#define EMBER_JOIN_FAILED (x94)
An attempt to join a network failed.
#define EMBER_MOVE_FAILED (x96)
After moving, a mobile node's attempt to re-establish contact with the network failed.
#define EMBER_CANNOT_JOIN_AS_ROUTER (x98)
An attempt to join as a router failed due to a Zigbee versus Zigbee Pro incompatibility. Zigbee devices joining Zigbee Pro networks (or vice versa) must join as End Devices, not Routers.
#define EMBER_NODE_ID_CHANGED (x99)
The local node ID has changed. The application can get the new node ID by calling ::emberGetNodeId().
#define EMBER_PAN_ID_CHANGED (x9A)
The local PAN ID has changed. The application can get the new PAN ID by calling ::emberGetPanId().
#define EMBER_CHANNEL_CHANGED (x9B)
The channel has changed.
#define EMBER_NO_BEACONS (xAB)
An attempt to join or rejoin the network failed because no router beacons could be heard by the joining node.
#define EMBER_RECEIVED_KEY_IN_THE_CLEAR (xAC)
An attempt was made to join a Secured Network using a pre-configured key, but the Trust Center sent back a Network Key in-the-clear when an encrypted Network Key was required. ( EMBER_REQUIRE_ENCRYPTED_KEY ).
#define EMBER_NO_NETWORK_KEY_RECEIVED (xAD)
An attempt was made to join a Secured Network, but the device did not receive a Network Key.
#define EMBER_NO_LINK_KEY_RECEIVED (xAE)
After a device joined a Secured Network, a Link Key was requested ( EMBER_GET_LINK_KEY_WHEN_JOINING ) but no response was ever received.
#define EMBER_PRECONFIGURED_KEY_REQUIRED (xAF)
An attempt was made to join a Secured Network without a pre-configured key, but the Trust Center sent encrypted data using a pre-configured key.

Security Errors

#define EMBER_KEY_INVALID (xB2)
The passed key data is not valid. A key of all zeros or all F's are reserved values and cannot be used.
#define EMBER_INVALID_SECURITY_LEVEL (x95)
The chosen security level (the value of ::EMBER_SECURITY_LEVEL) is not supported by the stack.
#define EMBER_APS_ENCRYPTION_ERROR (xA6)
An error occurred when trying to encrypt at the APS Level.
#define EMBER_SECURITY_STATE_NOT_SET (xA8)
There was an attempt to form or join a network with security without calling ::emberSetInitialSecurityState() first.
#define EMBER_KEY_TABLE_INVALID_ADDRESS (xB3)
There was an attempt to set an entry in the key table using an invalid long address. Invalid addresses include:
#define EMBER_SECURITY_CONFIGURATION_INVALID (xB7)
There was an attempt to set a security configuration that is not valid given the other security settings.
#define EMBER_TOO_SOON_FOR_SWITCH_KEY (xB8)
There was an attempt to broadcast a key switch too quickly after broadcasting the next network key. The Trust Center must wait at least a period equal to the broadcast timeout so that all routers have a chance to receive the broadcast of the new network key.
#define EMBER_SIGNATURE_VERIFY_FAILURE (xB9)
The received signature corresponding to the message that was passed to the CBKE Library failed verification and is not valid.
#define EMBER_KEY_NOT_AUTHORIZED (xBB)
The message could not be sent because the link key corresponding to the destination is not authorized for use in APS data messages. APS Commands (sent by the stack) are allowed. To use it for encryption of APS data messages it must be authorized using a key agreement protocol (such as CBKE).
#define EMBER_SECURITY_DATA_INVALID (xBD)
The security data provided was not valid, or an integrity check failed.

Miscellaneous Network Errors

#define EMBER_NOT_JOINED (x93)
The node has not joined a network.
#define EMBER_NETWORK_BUSY (xA1)
A message cannot be sent because the network is currently overloaded.
#define EMBER_INVALID_ENDPOINT (xA3)
The application tried to send a message using an endpoint that it has not defined.
#define EMBER_BINDING_HAS_CHANGED (xA4)
The application tried to use a binding that has been remotely modified and the change has not yet been reported to the application.
#define EMBER_INSUFFICIENT_RANDOM_DATA (xA5)
An attempt to generate random bytes failed because of insufficient random data from the radio.
#define EMBER_SOURCE_ROUTE_FAILURE (xA9)
#define EMBER_MANY_TO_ONE_ROUTE_FAILURE (xAA)

Miscellaneous Utility Errors

#define EMBER_STACK_AND_HARDWARE_MISMATCH (xB0)
A critical and fatal error indicating that the version of the stack trying to run does not match with the chip it's running on. The software (stack) on the chip must be replaced with software compatible with the chip.
#define EMBER_INDEX_OUT_OF_RANGE (xB1)
An index was passed into the function that was larger than the valid range.
#define EMBER_TABLE_FULL (xB4)
There are no empty entries left in the table.
#define EMBER_TABLE_ENTRY_ERASED (xB6)
The requested table entry has been erased and contains no valid data.
#define EMBER_LIBRARY_NOT_PRESENT (xB5)
The requested function cannot be executed because the library that contains the necessary functionality is not present.
#define EMBER_OPERATION_IN_PROGRESS (xBA)
The stack accepted the command and is currently processing the request. The results will be returned via an appropriate handler.
#define EMBER_TRUST_CENTER_EUI_HAS_CHANGED (xBC)
The EUI of the Trust center has changed due to a successful rejoin. The device may need to perform other authentication to verify the new TC is authorized to take over.

NVM3 Token Errors

#define EMBER_NVM3_TOKEN_NO_VALID_PAGES (xC0)
NVM3 is telling the application that the initialization was aborted as no valid NVM3 page was found.
#define EMBER_NVM3_ERR_OPENED_WITH_OTHER_PARAMETERS (xC1)
NVM3 is telling the application that the initialization was aborted as the NVM3 instance was already opened with other parameters.
#define EMBER_NVM3_ERR_ALIGNMENT_INVALID (xC2)
NVM3 is telling the application that the initialization was aborted as the NVM3 instance is not aligned properly in memory.
#define EMBER_NVM3_ERR_SIZE_TOO_SMALL (xC3)
NVM3 is telling the application that the initialization was aborted as the size of the NVM3 instance is too small.
#define EMBER_NVM3_ERR_PAGE_SIZE_NOT_SUPPORTED (xC4)
NVM3 is telling the application that the initialization was aborted as the NVM3 page size is not supported.
#define EMBER_NVM3_ERR_TOKEN_INIT (xC5)
NVM3 is telling the application that there was an error initializing some of the tokens.
#define EMBER_NVM3_ERR_UNKNOWN (xC6)
NVM3 is telling the application that there has been an unknown error.

Application Errors

These error codes are available for application use.

#define EMBER_APPLICATION_ERROR_0 (xF0)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_1 (xF1)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_2 (xF2)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_3 (xF3)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_4 (xF4)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_5 (xF5)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_6 (xF6)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_7 (xF7)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_8 (xF8)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_9 (xF9)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_10 (xFA)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_11 (xFB)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_12 (xFC)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_13 (xFD)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_14 (xFE)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
#define EMBER_APPLICATION_ERROR_15 (xFF)
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

Detailed Description

Many EmberZNet API functions return an EmberStatus value to indicate the success or failure of the call. Return codes are one byte long. This page documents the possible status codes and their meanings.

See error-def.h for source code.

See also error.h for information on how the values for the return codes are built up from these definitions. The file error-def.h is separated from error.h because utilities will use this file to parse the return codes.

Note
Do not include error-def.h directly. It is included by error.h inside an enumeration typedef, which is in turn included by ember.h.

Macro Definition Documentation

#define EMBER_ADC_CONVERSION_BUSY ( x81 )

The conversion cannot be done because a request is being processed.

#define EMBER_ADC_CONVERSION_DEFERRED ( x82 )

The conversion is deferred until the current request has been processed.

#define EMBER_ADC_CONVERSION_DONE ( x80 )

The conversion is complete.

#define EMBER_ADC_NO_CONVERSION_PENDING ( x84 )

No results are pending.

#define EMBER_ADDRESS_TABLE_ENTRY_IS_ACTIVE ( x76 )

The application is trying to overwrite an address table entry that is in use.

#define EMBER_ADDRESS_TABLE_INDEX_OUT_OF_RANGE ( x6A )

This address table index is out of range for the current address table.

#define EMBER_APPLICATION_ERROR_0 ( xF0 )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_1 ( xF1 )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_10 ( xFA )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_11 ( xFB )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_12 ( xFC )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_13 ( xFD )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_14 ( xFE )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_15 ( xFF )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_2 ( xF2 )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_3 ( xF3 )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_4 ( xF4 )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_5 ( xF5 )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_6 ( xF6 )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_7 ( xF7 )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_8 ( xF8 )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APPLICATION_ERROR_9 ( xF9 )

This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.

#define EMBER_APS_ENCRYPTION_ERROR ( xA6 )

An error occurred when trying to encrypt at the APS Level.

This error occurs either because the long address of the recipient can't be determined from the short address (no entry in the binding table) or there is no link key entry in the table associated with the destination, or there was a failure to load the correct key into the encryption core.

#define EMBER_AUTH_FAILURE ( x7E )

Security match.

#define EMBER_BAD_ARGUMENT ( x02 )

An invalid value was passed as an argument to a function.

Referenced by optionInstallCodeCommand() .

#define EMBER_BINDING_HAS_CHANGED ( xA4 )

The application tried to use a binding that has been remotely modified and the change has not yet been reported to the application.

#define EMBER_BINDING_INDEX_OUT_OF_RANGE ( x69 )

This binding index is out of range for the current binding table.

#define EMBER_BINDING_IS_ACTIVE ( x75 )

The application is trying to delete or overwrite a binding that is in use.

#define EMBER_CANNOT_JOIN_AS_ROUTER ( x98 )

An attempt to join as a router failed due to a Zigbee versus Zigbee Pro incompatibility. Zigbee devices joining Zigbee Pro networks (or vice versa) must join as End Devices, not Routers.

#define EMBER_CHANNEL_CHANGED ( x9B )

The channel has changed.

#define EMBER_COST_NOT_KNOWN ( x71 )

The link cost to a node is not known.

#define EMBER_COUNTER_FAILURE ( x7D )

Security match.

#define EMBER_DELIVERY_FAILED ( x66 )

The APS layer attempted to send or deliver a message and failed.

#define EMBER_DROP_FRAME ( x79 )

Drop frame.

#define EMBER_EEPROM_MFG_STACK_VERSION_MISMATCH ( x04 )

The manufacturing and stack token format in non-volatile memory is different than what the stack expects (returned at initialization).

#define EMBER_EEPROM_MFG_VERSION_MISMATCH ( x06 )

The manufacturing token format in non-volatile memory is different than what the stack expects (returned at initialization).

#define EMBER_EEPROM_STACK_VERSION_MISMATCH ( x07 )

The stack token format in non-volatile memory is different than what the stack expects (returned at initialization).

#define EMBER_ERR_BOOTLOADER_NO_IMAGE ( x05A )

The bootloader cannot complete the bootload operation because either an image was not found or the image exceeded memory bounds.

#define EMBER_ERR_BOOTLOADER_TRAP_TABLE_BAD ( x58 )

The bootloader received an invalid message (failed attempt to go into bootloader).

#define EMBER_ERR_BOOTLOADER_TRAP_UNKNOWN ( x59 )

The bootloader received an invalid message (failed attempt to go into the bootloader).

#define EMBER_ERR_FATAL ( x01 )

The generic "fatal error" message.

#define EMBER_ERR_FLASH_ERASE_FAIL ( x4C )

A fatal error has occurred while trying to erase the Flash possibly due to write protection. Data in the Flash cannot be trusted after this error and it is possible this error is the result of exceeding the life cycles of the Flash.

#define EMBER_ERR_FLASH_PROG_FAIL ( x4B )

A fatal error has occurred while trying to write data to the Flash possibly due to write protection or an invalid address. Data in the Flash cannot be trusted after this error and it is possible this error is the result of exceeding the life cycles of the Flash.

#define EMBER_ERR_FLASH_VERIFY_FAILED ( x47 )

A fatal error has occurred while trying to write data to the Flash and the write verification has failed. Data in the Flash cannot be trusted after this error and it is possible this error is the result of exceeding the life cycles of the Flash.

Referenced by halSimEepromCallback() .

#define EMBER_ERR_FLASH_WRITE_INHIBITED ( x46 )

A fatal error has occurred while trying to write data to the Flash. The target memory attempting to be programmed is already programmed. The flash write routines were asked to flip a bit from a 0 to 1, which is physically impossible and the write was therefore inhibited. The data in the Flash cannot be trusted after this error.

Referenced by halSimEepromCallback() .

#define EMBER_INCOMPATIBLE_STATIC_MEMORY_DEFINITIONS ( x05 )

The static memory definitions in ember-static-memory.h are incompatible with this stack version.

#define EMBER_INDEX_OUT_OF_RANGE ( xB1 )

An index was passed into the function that was larger than the valid range.

#define EMBER_INSUFFICIENT_RANDOM_DATA ( xA5 )

An attempt to generate random bytes failed because of insufficient random data from the radio.

#define EMBER_INVALID_BINDING_INDEX ( x6C )

An invalid binding table index was given to a function.

#define EMBER_INVALID_CALL ( x70 )

The API call is not allowed given the current state of the stack.

Referenced by emberAfPluginEzspZigbeeProSetConcentratorCommandCallback() , and emberSetOrGetEzspTokenCommandHandler() .

#define EMBER_INVALID_ENDPOINT ( xA3 )

The application tried to send a message using an endpoint that it has not defined.

#define EMBER_INVALID_SECURITY_LEVEL ( x95 )

The chosen security level (the value of ::EMBER_SECURITY_LEVEL) is not supported by the stack.

#define EMBER_JOIN_FAILED ( x94 )

An attempt to join a network failed.

#define EMBER_KEY_INVALID ( xB2 )

The passed key data is not valid. A key of all zeros or all F's are reserved values and cannot be used.

#define EMBER_KEY_NOT_AUTHORIZED ( xBB )

The message could not be sent because the link key corresponding to the destination is not authorized for use in APS data messages. APS Commands (sent by the stack) are allowed. To use it for encryption of APS data messages it must be authorized using a key agreement protocol (such as CBKE).

#define EMBER_KEY_TABLE_INVALID_ADDRESS ( xB3 )

There was an attempt to set an entry in the key table using an invalid long address. Invalid addresses include:

  • The local device's IEEE address
  • Trust Center's IEEE address
  • An existing table entry's IEEE address
  • An address consisting of all zeros or all F's
#define EMBER_LIBRARY_NOT_PRESENT ( xB5 )

The requested function cannot be executed because the library that contains the necessary functionality is not present.

Referenced by emberAfPluginXncpIncomingCustomFrameCallback() .

#define EMBER_MAC_ACK_HEADER_TYPE ( x3B )

MAC ACK header received.

#define EMBER_MAC_BAD_SCAN_DURATION ( x33 )

Scan duration must be 0 to 14 inclusive. Tried to scan with an incorrect duration value.

#define EMBER_MAC_COMMAND_TRANSMIT_FAILURE ( x36 )

Failed to scan the current channel because the relevant MAC command could not be transmitted.

#define EMBER_MAC_INCORRECT_SCAN_TYPE ( x34 )

emberStartScan was called with an incorrect scan type.

#define EMBER_MAC_INDIRECT_TIMEOUT ( x42 )

An indirect data message timed out before a poll requested it.

#define EMBER_MAC_INVALID_CHANNEL_MASK ( x35 )

emberStartScan was called with an invalid channel mask.

#define EMBER_MAC_JOINED_NETWORK ( x32 )

Attempts to scan when joined to a network.

#define EMBER_MAC_NO_ACK_RECEIVED ( x40 )

An ACK was expected following the transmission but the MAC level ACK was never received.

#define EMBER_MAC_NO_DATA ( x31 )

No pending data exists for a data poll.

#define EMBER_MAC_RADIO_NETWORK_SWITCH_FAILED ( x41 )

MAC failed to transmit a message because it could not successfully perform a radio network switch.

#define EMBER_MAC_SCANNING ( x3D )

The MAC can't complete this task because it is scanning.

#define EMBER_MAC_TRANSMIT_QUEUE_FULL ( x39 )

The MAC transmit queue is full.

#define EMBER_MAC_UNKNOWN_HEADER_TYPE ( x3A )

MAC header FCF error on receive.

#define EMBER_MANY_TO_ONE_ROUTE_FAILURE ( xAA )

A Zigbee route error command frame was received indicating that a message sent to this node along a many-to-one route failed en route. The route error frame was delivered by an ad-hoc search for a functioning route.

#define EMBER_MATCH ( x78 )

Security match.

#define EMBER_MAX_MESSAGE_LIMIT_REACHED ( x72 )

The maximum number of in-flight messages (i.e., ::EMBER_APS_UNICAST_MESSAGE_COUNT) has been reached.

#define EMBER_MESSAGE_TOO_LONG ( x74 )

The message to be transmitted is too big to fit into a single over-the-air packet.

#define EMBER_MOVE_FAILED ( x96 )

After moving, a mobile node's attempt to re-establish contact with the network failed.

#define EMBER_NETWORK_BUSY ( xA1 )

A message cannot be sent because the network is currently overloaded.

#define EMBER_NETWORK_DOWN ( x91 )

The network is not operating.

#define EMBER_NETWORK_UP ( x90 )

The stack software has completed initialization and is ready to send and receive packets over the air.

#define EMBER_NO_BEACONS ( xAB )

An attempt to join or rejoin the network failed because no router beacons could be heard by the joining node.

#define EMBER_NO_BUFFERS ( x18 )

There are no more buffers.

Referenced by matchDescriptorsRequest() .

#define EMBER_NO_LINK_KEY_RECEIVED ( xAE )

After a device joined a Secured Network, a Link Key was requested ( EMBER_GET_LINK_KEY_WHEN_JOINING ) but no response was ever received.

#define EMBER_NO_NETWORK_KEY_RECEIVED ( xAD )

An attempt was made to join a Secured Network, but the device did not receive a Network Key.

#define EMBER_NO_SECURITY ( x7C )

Security match.

#define EMBER_NODE_ID_CHANGED ( x99 )

The local node ID has changed. The application can get the new node ID by calling ::emberGetNodeId().

#define EMBER_NOT_FOUND ( x03 )

The requested information was not found.

#define EMBER_NOT_JOINED ( x93 )

The node has not joined a network.

#define EMBER_NVM3_ERR_ALIGNMENT_INVALID ( xC2 )

NVM3 is telling the application that the initialization was aborted as the NVM3 instance is not aligned properly in memory.

#define EMBER_NVM3_ERR_OPENED_WITH_OTHER_PARAMETERS ( xC1 )

NVM3 is telling the application that the initialization was aborted as the NVM3 instance was already opened with other parameters.

#define EMBER_NVM3_ERR_PAGE_SIZE_NOT_SUPPORTED ( xC4 )

NVM3 is telling the application that the initialization was aborted as the NVM3 page size is not supported.

#define EMBER_NVM3_ERR_SIZE_TOO_SMALL ( xC3 )

NVM3 is telling the application that the initialization was aborted as the size of the NVM3 instance is too small.

#define EMBER_NVM3_ERR_TOKEN_INIT ( xC5 )

NVM3 is telling the application that there was an error initializing some of the tokens.

#define EMBER_NVM3_ERR_UNKNOWN ( xC6 )

NVM3 is telling the application that there has been an unknown error.

#define EMBER_NVM3_TOKEN_NO_VALID_PAGES ( xC0 )

NVM3 is telling the application that the initialization was aborted as no valid NVM3 page was found.

#define EMBER_OPERATION_IN_PROGRESS ( xBA )

The stack accepted the command and is currently processing the request. The results will be returned via an appropriate handler.

#define EMBER_PAN_ID_CHANGED ( x9A )

The local PAN ID has changed. The application can get the new PAN ID by calling ::emberGetPanId().

#define EMBER_PASS_UNPROCESSED ( x7A )

Security match.

#define EMBER_PHY_ACK_RECEIVED ( x8F )

The expected ACK was received after the last transmission.

#define EMBER_PHY_INVALID_CHANNEL ( x8A )

An unsupported channel setting was specified.

#define EMBER_PHY_INVALID_POWER ( x8B )

An unsupported power setting was specified.

#define EMBER_PHY_OSCILLATOR_CHECK_FAILED ( x8E )

The software installed on the hardware doesn't recognize the hardware radio type.

#define EMBER_PHY_TX_BUSY ( x8C )

The requested operation cannot be completed because the radio is currently busy, either transmitting a packet or performing calibration.

#define EMBER_PHY_TX_CCA_FAIL ( x8D )

The transmit attempt failed because all CCA attempts indicated that the channel was busy.

#define EMBER_PHY_TX_INCOMPLETE ( x89 )

The transmit hardware did not finish transmitting a packet.

#define EMBER_PHY_TX_UNDERFLOW ( x88 )

The transmit hardware buffer underflowed.

#define EMBER_PRECONFIGURED_KEY_REQUIRED ( xAF )

An attempt was made to join a Secured Network without a pre-configured key, but the Trust Center sent encrypted data using a pre-configured key.

#define EMBER_RECEIVED_KEY_IN_THE_CLEAR ( xAC )

An attempt was made to join a Secured Network using a pre-configured key, but the Trust Center sent back a Network Key in-the-clear when an encrypted Network Key was required. ( EMBER_REQUIRE_ENCRYPTED_KEY ).

#define EMBER_SECURITY_CONFIGURATION_INVALID ( xB7 )

There was an attempt to set a security configuration that is not valid given the other security settings.

#define EMBER_SECURITY_DATA_INVALID ( xBD )

The security data provided was not valid, or an integrity check failed.

Referenced by optionInstallCodeCommand() .

#define EMBER_SECURITY_STATE_NOT_SET ( xA8 )

There was an attempt to form or join a network with security without calling ::emberSetInitialSecurityState() first.

#define EMBER_SERIAL_INVALID_BAUD_RATE ( x20 )

Specifies an invalid baud rate.

#define EMBER_SERIAL_INVALID_PORT ( x21 )

Specifies an invalid serial port.

#define EMBER_SERIAL_RX_EMPTY ( x26 )

There is no received data to process.

#define EMBER_SERIAL_RX_FRAME_ERROR ( x24 )

Detected a UART framing error.

#define EMBER_SERIAL_RX_OVERFLOW ( x23 )

There wasn't enough space to store a received character and the character was dropped.

#define EMBER_SERIAL_RX_OVERRUN_ERROR ( x27 )

The receive interrupt was not handled in time and a character was dropped.

#define EMBER_SERIAL_RX_PARITY_ERROR ( x25 )

Detected a UART parity error.

#define EMBER_SERIAL_TX_OVERFLOW ( x22 )

Tried to send too much data.

#define EMBER_SIGNATURE_VERIFY_FAILURE ( xB9 )

The received signature corresponding to the message that was passed to the CBKE Library failed verification and is not valid.

#define EMBER_SIM_EEPROM_ERASE_PAGE_GREEN ( x43 )

The Simulated EEPROM is telling the application that at least one flash page to be erased. The GREEN status means the current page has not filled above the ::ERASE_CRITICAL_THRESHOLD.

The application should call the function ::halSimEepromErasePage() when it can to erase a page.

Referenced by halSimEepromCallback() .

#define EMBER_SIM_EEPROM_ERASE_PAGE_RED ( x44 )

The Simulated EEPROM is telling the application that at least one flash page must be erased. The RED status means the current page has filled above the ::ERASE_CRITICAL_THRESHOLD.

Due to the shrinking availability of write space, data could be lost. The application must call the function ::halSimEepromErasePage() as soon as possible to erase a page.

Referenced by halSimEepromCallback() .

#define EMBER_SIM_EEPROM_FULL ( x45 )

The Simulated EEPROM has run out of room to write new data and the data trying to be set has been lost. This error code is the result of ignoring the ::SIM_EEPROM_ERASE_PAGE_RED error code.

The application must call the function ::halSimEepromErasePage() to make room for any further calls to set a token.

Referenced by halSimEepromCallback() .

#define EMBER_SIM_EEPROM_INIT_1_FAILED ( x48 )

Attempt 1 to initialize the Simulated EEPROM has failed.

This failure means the information already stored in the Flash (or a lack thereof), is fatally incompatible with the token information compiled into the code image being run.

#define EMBER_SIM_EEPROM_INIT_2_FAILED ( x49 )

Attempt 2 to initialize the Simulated EEPROM has failed.

This failure means Attempt 1 failed, and the token system failed to properly reload default tokens and reset the Simulated EEPROM.

#define EMBER_SIM_EEPROM_INIT_3_FAILED ( x4A )

Attempt 3 to initialize the Simulated EEPROM has failed.

This failure means one or both of the tokens ::TOKEN_MFG_NVDATA_VERSION or ::TOKEN_STACK_NVDATA_VERSION were incorrect and the token system failed to properly reload default tokens and reset the Simulated EEPROM.

#define EMBER_SIM_EEPROM_REPAIRING ( x4D )

The Simulated EEPROM is repairing itself.

While there's nothing for an app to do when the SimEE is going to repair itself (SimEE has to be fully functional for the rest of the system to work), alert the application to the fact that repair is occurring. There are debugging scenarios where an app might want to know that repair is happening, such as monitoring frequency.

Note
Common situations will trigger an expected repair, such as using an erased chip or changing token definitions.

Referenced by halSimEepromCallback() .

#define EMBER_SLEEP_INTERRUPTED ( x85 )

Sleeping (for a duration) has been abnormally interrupted and exited prematurely.

#define EMBER_SOURCE_ROUTE_FAILURE ( xA9 )

A Zigbee route error command frame was received indicating that a source routed message from this node failed en route.

#define EMBER_STACK_AND_HARDWARE_MISMATCH ( xB0 )

A critical and fatal error indicating that the version of the stack trying to run does not match with the chip it's running on. The software (stack) on the chip must be replaced with software compatible with the chip.

#define EMBER_SUCCESS ( x00 )

The generic "no error" message.

Referenced by emAfCliBsendCommand() , emAfCliSendCommand() , eraseKeyTableEntry() , getOutgoingApsFrameCounter() , getSetMfgToken() , interpanCommand() , interpanLongCommand() , matchDescriptorsRequest() , networkMultiPhyStartCommand() , networkMultiPhyStopCommand() , optionBindingTablePrintCommand() , optionBindingTableSetCommand() , optionInstallCodeCommand() , printKeyInfo() , printKeyTable() , zdoBindCommand() , zdoEndDeviceBindRequestCommand() , zdoMatchCommand() , and zdoNetworkUpdateChannelCommand() .

#define EMBER_TABLE_ENTRY_ERASED ( xB6 )

The requested table entry has been erased and contains no valid data.

#define EMBER_TABLE_FULL ( xB4 )

There are no empty entries left in the table.

#define EMBER_TOO_SOON_FOR_SWITCH_KEY ( xB8 )

There was an attempt to broadcast a key switch too quickly after broadcasting the next network key. The Trust Center must wait at least a period equal to the broadcast timeout so that all routers have a chance to receive the broadcast of the new network key.

#define EMBER_TRANSMISSION_SUSPENDED ( x77 )

An attempt was made to transmit during the suspend period.

#define EMBER_TRUST_CENTER_EUI_HAS_CHANGED ( xBC )

The EUI of the Trust center has changed due to a successful rejoin. The device may need to perform other authentication to verify the new TC is authorized to take over.

#define EMBER_TX_THEN_DROP ( x7B )

Security match.

#define EMBER_UNPROCESSED ( x7F )

Security match.