Introduce a CHIP_ERROR table (#23131)

* Introduce a CHIP_ERROR table

- Constantly looking-up the code to find CHIP_ERROR values (especially
  the ones with embedded errors outside of 0x00.0xFF range) is painstaking.

This PR:

- Adds a script to generate a list of CHIP_ERROR errors codes in decimal and hex.
- Generated the `docs/ERROR_CODES.md` file

Testing done:
- Audited the output visually
- No functional change to SDK

* Restyle
diff --git a/docs/ERROR_CODES.md b/docs/ERROR_CODES.md
new file mode 100644
index 0000000..7415d29
--- /dev/null
+++ b/docs/ERROR_CODES.md
@@ -0,0 +1,349 @@
+# Matter SDK `CHIP_ERROR` enums values
+
+This file was **AUTOMATICALLY** generated by
+`python scripts/error_table.py > docs/ERROR_CODES.md`. DO NOT EDIT BY HAND!
+
+## Table of contents
+
+-   [SDK Core errors: range `0x000..0x0FF`](#sdk-core-errors)
+-   [SDK Inet Layer errors: range `0x100..0x1FF`](#sdk-inet-layer-errors)
+-   [SDK Device Layer errors: range `0x200..0x2FF`](#sdk-device-layer-errors)
+-   [ASN.1 Layer errors: range `0x300..0x3FF`](#asn-1-layer-errors)
+-   [BLE Layer errors: range `0x400..0x4FF`](#ble-layer-errors)
+-   [IM Global errors errors: range `0x500..0x5FF`](#im-global-errors-errors)
+
+## SDK Core errors
+
+| Decimal | Hex  | Name                                                 | Description                                                                                                                                                                   |
+| ------- | ---- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 0       | 0x00 | `CHIP_NO_ERROR`                                      | This defines the CHIP error code for success or no error                                                                                                                      |
+| 1       | 0x01 | `CHIP_ERROR_SENDING_BLOCKED`                         | A message exceeds the sent limit                                                                                                                                              |
+| 2       | 0x02 | `CHIP_ERROR_CONNECTION_ABORTED`                      | A connection has been aborted                                                                                                                                                 |
+| 3       | 0x03 | `CHIP_ERROR_INCORRECT_STATE`                         | An unexpected state was encountered                                                                                                                                           |
+| 4       | 0x04 | `CHIP_ERROR_MESSAGE_TOO_LONG`                        | A message is too long                                                                                                                                                         |
+| 5       | 0x05 | `CHIP_ERROR_UNSUPPORTED_EXCHANGE_VERSION`            | An exchange version is not supported                                                                                                                                          |
+| 6       | 0x06 | `CHIP_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS`   | The attempt to register an unsolicited message handler failed because the unsolicited message handler pool is full                                                            |
+| 7       | 0x07 | `CHIP_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER`          | The attempt to unregister an unsolicited message handler failed because the target handler was not found in the unsolicited message handler pool                              |
+| 8       | 0x08 | `CHIP_ERROR_NO_CONNECTION_HANDLER`                   | No callback has been registered for handling a connection                                                                                                                     |
+| 9       | 0x09 | `CHIP_ERROR_TOO_MANY_PEER_NODES`                     | The number of peer nodes exceeds the maximum limit of a local node                                                                                                            |
+| 10      | 0x0A | `CHIP_ERROR_SENTINEL`                                | For use locally to mark conditions such as value found or end of iteration                                                                                                    |
+| 11      | 0x0B | `CHIP_ERROR_NO_MEMORY`                               | The attempt to allocate a buffer or object failed due to a lack of memory                                                                                                     |
+| 12      | 0x0C | `CHIP_ERROR_NO_MESSAGE_HANDLER`                      | No callback has been registered for handling a message                                                                                                                        |
+| 13      | 0x0D | `CHIP_ERROR_MESSAGE_INCOMPLETE`                      | A message is incomplete                                                                                                                                                       |
+| 14      | 0x0E | `CHIP_ERROR_DATA_NOT_ALIGNED`                        | The data is not aligned                                                                                                                                                       |
+| 15      | 0x0F | `CHIP_ERROR_UNKNOWN_KEY_TYPE`                        | The encryption key type is unknown                                                                                                                                            |
+| 16      | 0x10 | `CHIP_ERROR_KEY_NOT_FOUND`                           | The encryption key is not found                                                                                                                                               |
+| 17      | 0x11 | `CHIP_ERROR_WRONG_ENCRYPTION_TYPE`                   | The encryption type is incorrect for the specified key                                                                                                                        |
+| 18      | 0x12 | `CHIP_ERROR_TOO_MANY_KEYS`                           | The attempt to allocate a key failed because the number of active keys exceeds the maximum limit                                                                              |
+| 19      | 0x13 | `CHIP_ERROR_INTEGRITY_CHECK_FAILED`                  | The integrity check in the message does not match the expected integrity check                                                                                                |
+| 20      | 0x14 | `CHIP_ERROR_INVALID_SIGNATURE`                       | Invalid signature                                                                                                                                                             |
+| 21      | 0x15 | `CHIP_ERROR_UNSUPPORTED_MESSAGE_VERSION`             | A message version is unsupported                                                                                                                                              |
+| 22      | 0x16 | `CHIP_ERROR_UNSUPPORTED_ENCRYPTION_TYPE`             | An encryption type is unsupported                                                                                                                                             |
+| 23      | 0x17 | `CHIP_ERROR_UNSUPPORTED_SIGNATURE_TYPE`              | A signature type is unsupported                                                                                                                                               |
+| 24      | 0x18 | `CHIP_ERROR_INVALID_MESSAGE_LENGTH`                  | A message length is invalid                                                                                                                                                   |
+| 25      | 0x19 | `CHIP_ERROR_BUFFER_TOO_SMALL`                        | A buffer is too small                                                                                                                                                         |
+| 26      | 0x1A | `CHIP_ERROR_DUPLICATE_KEY_ID`                        | A key id is duplicate                                                                                                                                                         |
+| 27      | 0x1B | `CHIP_ERROR_WRONG_KEY_TYPE`                          | A key type does not match the expected key type                                                                                                                               |
+| 28      | 0x1C | `CHIP_ERROR_WELL_UNINITIALIZED`                      | A requested object is uninitialized                                                                                                                                           |
+| 29      | 0x1D | `CHIP_ERROR_WELL_EMPTY`                              | A requested object is empty                                                                                                                                                   |
+| 30      | 0x1E | `CHIP_ERROR_INVALID_STRING_LENGTH`                   | A string length is invalid                                                                                                                                                    |
+| 31      | 0x1F | `CHIP_ERROR_INVALID_LIST_LENGTH`                     | A list length is invalid                                                                                                                                                      |
+| 32      | 0x20 | `CHIP_ERROR_INVALID_INTEGRITY_TYPE`                  | An integrity type is invalid                                                                                                                                                  |
+| 33      | 0x21 | `CHIP_ERROR_END_OF_TLV`                              | The end of a TLV encoding, or the end of a TLV container element has been reached                                                                                             |
+| 34      | 0x22 | `CHIP_ERROR_TLV_UNDERRUN`                            | The TLV encoding ended prematurely                                                                                                                                            |
+| 35      | 0x23 | `CHIP_ERROR_INVALID_TLV_ELEMENT`                     | A TLV element is invalid                                                                                                                                                      |
+| 36      | 0x24 | `CHIP_ERROR_INVALID_TLV_TAG`                         | A TLV tag is invalid                                                                                                                                                          |
+| 37      | 0x25 | `CHIP_ERROR_UNKNOWN_IMPLICIT_TLV_TAG`                | An implicitly encoded TLV tag was encountered, but an implicit profile id has not been defined                                                                                |
+| 38      | 0x26 | `CHIP_ERROR_WRONG_TLV_TYPE`                          | A TLV type is wrong                                                                                                                                                           |
+| 39      | 0x27 | `CHIP_ERROR_TLV_CONTAINER_OPEN`                      | A TLV container is unexpectedly open                                                                                                                                          |
+| 40      | 0x28 | `CHIP_ERROR_INVALID_TRANSFER_MODE`                   | A transfer mode is invalid                                                                                                                                                    |
+| 41      | 0x29 | `CHIP_ERROR_INVALID_PROFILE_ID`                      | A profile id is invalid                                                                                                                                                       |
+| 42      | 0x2A | `CHIP_ERROR_INVALID_MESSAGE_TYPE`                    | A message type is invalid                                                                                                                                                     |
+| 43      | 0x2B | `CHIP_ERROR_UNEXPECTED_TLV_ELEMENT`                  | An unexpected TLV element was encountered                                                                                                                                     |
+| 44      | 0x2C | `CHIP_ERROR_STATUS_REPORT_RECEIVED`                  | A status report is received from a peer node                                                                                                                                  |
+| 45      | 0x2D | `CHIP_ERROR_NOT_IMPLEMENTED`                         | A requested function or feature is not implemented                                                                                                                            |
+| 46      | 0x2E | `CHIP_ERROR_INVALID_ADDRESS`                         | An address is invalid                                                                                                                                                         |
+| 47      | 0x2F | `CHIP_ERROR_INVALID_ARGUMENT`                        | An argument is invalid                                                                                                                                                        |
+| 48      | 0x30 | `CHIP_ERROR_INVALID_PATH_LIST`                       | A TLV path list is invalid                                                                                                                                                    |
+| 49      | 0x31 | `CHIP_ERROR_INVALID_DATA_LIST`                       | A TLV data list is invalid                                                                                                                                                    |
+| 50      | 0x32 | `CHIP_ERROR_TIMEOUT`                                 | A request timed out                                                                                                                                                           |
+| 51      | 0x33 | `CHIP_ERROR_INVALID_DEVICE_DESCRIPTOR`               | A device descriptor is invalid                                                                                                                                                |
+| 52      | 0x34 | `CHIP_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION`   | A device descriptor version is unsupported                                                                                                                                    |
+| 53      | 0x35 | `CHIP_ERROR_END_OF_INPUT`                            | An input ended                                                                                                                                                                |
+| 54      | 0x36 | `CHIP_ERROR_RATE_LIMIT_EXCEEDED`                     | A rate limit is exceeded                                                                                                                                                      |
+| 55      | 0x37 | `CHIP_ERROR_SECURITY_MANAGER_BUSY`                   | A security manager is busy                                                                                                                                                    |
+| 56      | 0x38 | `CHIP_ERROR_INVALID_PASE_PARAMETER`                  | A PASE parameter is invalid                                                                                                                                                   |
+| 57      | 0x39 | `CHIP_ERROR_PASE_SUPPORTS_ONLY_CONFIG1`              | PASE supports only config1                                                                                                                                                    |
+| 58      | 0x3A | `CHIP_ERROR_KEY_CONFIRMATION_FAILED`                 | A key confirmation failed                                                                                                                                                     |
+| 59      | 0x3B | `CHIP_ERROR_INVALID_USE_OF_SESSION_KEY`              | A use of session key is invalid                                                                                                                                               |
+| 60      | 0x3C | `CHIP_ERROR_CONNECTION_CLOSED_UNEXPECTEDLY`          | A connection is closed unexpectedly                                                                                                                                           |
+| 61      | 0x3D | `CHIP_ERROR_MISSING_TLV_ELEMENT`                     | A TLV element is missing                                                                                                                                                      |
+| 62      | 0x3E | `CHIP_ERROR_RANDOM_DATA_UNAVAILABLE`                 | Secure random data is not available                                                                                                                                           |
+| 63      | 0x3F | `CHIP_ERROR_UNSUPPORTED_HOST_PORT_ELEMENT`           | A type in host/port list is unsupported                                                                                                                                       |
+| 64      | 0x40 | `CHIP_ERROR_INVALID_HOST_SUFFIX_INDEX`               | A suffix index in host/port list is invalid                                                                                                                                   |
+| 65      | 0x41 | `CHIP_ERROR_HOST_PORT_LIST_EMPTY`                    | A host/port list is empty                                                                                                                                                     |
+| 66      | 0x42 | `CHIP_ERROR_UNSUPPORTED_AUTH_MODE`                   | An authentication mode is unsupported                                                                                                                                         |
+| 67      | 0x43 | `CHIP_ERROR_INVALID_SERVICE_EP`                      | A service endpoint is invalid                                                                                                                                                 |
+| 68      | 0x44 | `CHIP_ERROR_INVALID_DIRECTORY_ENTRY_TYPE`            | A directory entry type is unknown                                                                                                                                             |
+| 69      | 0x45 | `CHIP_ERROR_FORCED_RESET`                            | A service manager is forced to reset                                                                                                                                          |
+| 70      | 0x46 | `CHIP_ERROR_NO_ENDPOINT`                             | No endpoint is available                                                                                                                                                      |
+| 71      | 0x47 | `CHIP_ERROR_INVALID_DESTINATION_NODE_ID`             | A destination node id is invalid                                                                                                                                              |
+| 72      | 0x48 | `CHIP_ERROR_NOT_CONNECTED`                           | The operation cannot be performed because the underlying object is not connected                                                                                              |
+| 73      | 0x49 | `CHIP_ERROR_NO_SW_UPDATE_AVAILABLE`                  | No software update is available                                                                                                                                               |
+| 74      | 0x4A | `CHIP_ERROR_CA_CERT_NOT_FOUND`                       | CA certificate is not found                                                                                                                                                   |
+| 75      | 0x4B | `CHIP_ERROR_CERT_PATH_LEN_CONSTRAINT_EXCEEDED`       | A certificate path length exceeds the constraint                                                                                                                              |
+| 76      | 0x4C | `CHIP_ERROR_CERT_PATH_TOO_LONG`                      | A certificate path is too long                                                                                                                                                |
+| 77      | 0x4D | `CHIP_ERROR_CERT_USAGE_NOT_ALLOWED`                  | A requested certificate usage is not allowed                                                                                                                                  |
+| 78      | 0x4E | `CHIP_ERROR_CERT_EXPIRED`                            | A certificate expired                                                                                                                                                         |
+| 79      | 0x4F | `CHIP_ERROR_CERT_NOT_VALID_YET`                      | A certificate is not valid yet                                                                                                                                                |
+| 80      | 0x50 | `CHIP_ERROR_UNSUPPORTED_CERT_FORMAT`                 | A certificate format is unsupported                                                                                                                                           |
+| 81      | 0x51 | `CHIP_ERROR_UNSUPPORTED_ELLIPTIC_CURVE`              | An elliptic curve is unsupported                                                                                                                                              |
+| 82      | 0x52 | `CHIP_ERROR_CERT_NOT_USED`                           | A certificate was not used during the chain validation                                                                                                                        |
+| 83      | 0x53 | `CHIP_ERROR_CERT_NOT_FOUND`                          | A certificate is not found                                                                                                                                                    |
+| 84      | 0x54 | `CHIP_ERROR_INVALID_CASE_PARAMETER`                  | A CASE parameter is invalid                                                                                                                                                   |
+| 85      | 0x55 | `CHIP_ERROR_UNSUPPORTED_CASE_CONFIGURATION`          | A CASE configuration is unsupported                                                                                                                                           |
+| 86      | 0x56 | `CHIP_ERROR_CERT_LOAD_FAILED`                        | A certificate load failed                                                                                                                                                     |
+| 87      | 0x57 | `CHIP_ERROR_CERT_NOT_TRUSTED`                        | A certificate is not trusted                                                                                                                                                  |
+| 88      | 0x58 | `CHIP_ERROR_INVALID_ACCESS_TOKEN`                    | An access token is invalid                                                                                                                                                    |
+| 89      | 0x59 | `CHIP_ERROR_WRONG_CERT_DN`                           | A certificate subject/issuer distinguished name is wrong                                                                                                                      |
+| 90      | 0x5A | `CHIP_ERROR_INVALID_PROVISIONING_BUNDLE`             | A provisioning bundle is invalid                                                                                                                                              |
+| 91      | 0x5B | `CHIP_ERROR_PROVISIONING_BUNDLE_DECRYPTION_ERROR`    | A provision bundle encountered a decryption error                                                                                                                             |
+| 92      | 0x5C | `CHIP_ERROR_WRONG_NODE_ID`                           | A node id is wrong                                                                                                                                                            |
+| 93      | 0x5D | `CHIP_ERROR_CONN_ACCEPTED_ON_WRONG_PORT`             | A connection is accepted on a wrong port                                                                                                                                      |
+| 94      | 0x5E | `CHIP_ERROR_CALLBACK_REPLACED`                       | An application callback has been replaced                                                                                                                                     |
+| 95      | 0x5F | `CHIP_ERROR_NO_CASE_AUTH_DELEGATE`                   | No CASE authentication delegate is set                                                                                                                                        |
+| 96      | 0x60 | `CHIP_ERROR_DEVICE_LOCATE_TIMEOUT`                   | The attempt to locate device timed out                                                                                                                                        |
+| 97      | 0x61 | `CHIP_ERROR_DEVICE_CONNECT_TIMEOUT`                  | The attempt to connect device timed out                                                                                                                                       |
+| 98      | 0x62 | `CHIP_ERROR_DEVICE_AUTH_TIMEOUT`                     | The attempt to authenticate device timed out                                                                                                                                  |
+| 99      | 0x63 | `CHIP_ERROR_MESSAGE_NOT_ACKNOWLEDGED`                | A message is not acknowledged after max retries                                                                                                                               |
+| 100     | 0x64 | `CHIP_ERROR_RETRANS_TABLE_FULL`                      | A retransmission table is already full                                                                                                                                        |
+| 101     | 0x65 | `CHIP_ERROR_INVALID_ACK_MESSAGE_COUNTER`             | An acknowledgment id is invalid                                                                                                                                               |
+| 102     | 0x66 | `CHIP_ERROR_SEND_THROTTLED`                          | A send is throttled                                                                                                                                                           |
+| 103     | 0x67 | `CHIP_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE`          | A message version is not supported by the current exchange context                                                                                                            |
+| 104     | 0x68 | `CHIP_ERROR_TRANSACTION_CANCELED`                    | A transaction is cancelled                                                                                                                                                    |
+| 105     | 0x69 | `CHIP_ERROR_LISTENER_ALREADY_STARTED`                | A listener has already started                                                                                                                                                |
+| 106     | 0x6A | `CHIP_ERROR_LISTENER_ALREADY_STOPPED`                | A listener has already stopped                                                                                                                                                |
+| 107     | 0x6B | `CHIP_ERROR_INVALID_SUBSCRIPTION`                    | A message was received as part of a subscription exchange that has a mis-matching subscription id                                                                             |
+| 108     | 0x6C | `CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE`                | A CHIP feature is unsupported                                                                                                                                                 |
+| 109     | 0x6D | `CHIP_ERROR_PASE_RECONFIGURE_REQUIRED`               | PASE is required to reconfigure                                                                                                                                               |
+| 110     | 0x6E | `CHIP_ERROR_INVALID_PASE_CONFIGURATION`              | A PASE configuration is invalid                                                                                                                                               |
+| 111     | 0x6F | `CHIP_ERROR_NO_COMMON_PASE_CONFIGURATIONS`           | No PASE configuration is in common                                                                                                                                            |
+| 112     | 0x70 | `CHIP_ERROR_UNSOLICITED_MSG_NO_ORIGINATOR`           | An unsolicited message with the originator bit clear                                                                                                                          |
+| 113     | 0x71 | `CHIP_ERROR_INVALID_FABRIC_INDEX`                    | A fabric index is invalid                                                                                                                                                     |
+| 114     | 0x72 | `CHIP_ERROR_TOO_MANY_CONNECTIONS`                    | The attempt to allocate a connection object failed because too many connections exist                                                                                         |
+| 115     | 0x73 | `CHIP_ERROR_SHUT_DOWN`                               | The operation cancelled because a shut down was initiated                                                                                                                     |
+| 116     | 0x74 | `CHIP_ERROR_CANCELLED`                               | The operation has been cancelled, generally by calling a cancel/abort request                                                                                                 |
+| 117     | 0x75 | `CHIP_ERROR_DRBG_ENTROPY_SOURCE_FAILED`              | DRBG entropy source failed to generate entropy data                                                                                                                           |
+| 118     | 0x76 | `CHIP_ERROR_TLV_TAG_NOT_FOUND`                       | A specified TLV tag was not found                                                                                                                                             |
+| 119     | 0x77 | `CHIP_ERROR_MISSING_SECURE_SESSION`                  | A secure session is needed to do work, but is missing/is not present                                                                                                          |
+| 120     | 0x78 | `CHIP_ERROR_INVALID_ADMIN_SUBJECT`                   | The CaseAdminSubject field is not valid in AddNOC command                                                                                                                     |
+| 121     | 0x79 | `CHIP_ERROR_INSUFFICIENT_PRIVILEGE`                  | Required privilege was insufficient during an operation                                                                                                                       |
+| 122     | 0x7A | `CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_REPORT_IB`        | The Attribute Report IB is malformed: it does not contain the required elements                                                                                               |
+| 123     | 0x7B | `CHIP_ERROR_IM_MALFORMED_EVENT_STATUS_IB`            | The Event Status IB is malformed: it does not contain the required elements                                                                                                   |
+| 124     | 0x7C | `CHIP_ERROR_IM_MALFORMED_STATUS_RESPONSE_MESSAGE`    | The Status Response Message is malformed: it does not contain the required elements                                                                                           |
+| 125     | 0x7D | `CHIP_ERROR_MESSAGE_COUNTER_EXHAUSTED`               | The message counter of the session is exhausted, the session should be closed                                                                                                 |
+| 126     | 0x7E | `CHIP_ERROR_FABRIC_EXISTS`                           | The fabric with the given fabric id and root public key already exists                                                                                                        |
+| 127     | 0x7F | `CHIP_ERROR_KEY_NOT_FOUND_FROM_PEER`                 | The encryption key is not found error received from a peer node                                                                                                               |
+| 128     | 0x80 | `CHIP_ERROR_WRONG_ENCRYPTION_TYPE_FROM_PEER`         | The wrong encryption type error received from a peer node                                                                                                                     |
+| 129     | 0x81 | `CHIP_ERROR_UNKNOWN_KEY_TYPE_FROM_PEER`              | The unknown key type error received from a peer node                                                                                                                          |
+| 130     | 0x82 | `CHIP_ERROR_INVALID_USE_OF_SESSION_KEY_FROM_PEER`    | The invalid use of session key error received from a peer node                                                                                                                |
+| 131     | 0x83 | `CHIP_ERROR_UNSUPPORTED_ENCRYPTION_TYPE_FROM_PEER`   | An unsupported encryption type error received from a peer node                                                                                                                |
+| 132     | 0x84 | `CHIP_ERROR_INTERNAL_KEY_ERROR_FROM_PEER`            | The internal key error received from a peer node                                                                                                                              |
+| 133     | 0x85 | `CHIP_ERROR_INVALID_KEY_ID`                          | A key id is invalid                                                                                                                                                           |
+| 134     | 0x86 | `CHIP_ERROR_INVALID_TIME`                            | Time has invalid value                                                                                                                                                        |
+| 135     | 0x87 | `CHIP_ERROR_LOCKING_FAILURE`                         | Failure to acquire or release an OS provided mutex                                                                                                                            |
+| 136     | 0x88 | `CHIP_ERROR_UNSUPPORTED_PASSCODE_CONFIG`             | A passcode encryption configuration is unsupported                                                                                                                            |
+| 137     | 0x89 | `CHIP_ERROR_PASSCODE_AUTHENTICATION_FAILED`          | The CHIP passcode authentication failed                                                                                                                                       |
+| 138     | 0x8A | `CHIP_ERROR_PASSCODE_FINGERPRINT_FAILED`             | The CHIP passcode fingerprint failed                                                                                                                                          |
+| 139     | 0x8B | `CHIP_ERROR_SERIALIZATION_ELEMENT_NULL`              | The element of the struct is null                                                                                                                                             |
+| 140     | 0x8C | `CHIP_ERROR_WRONG_CERT_SIGNATURE_ALGORITHM`          | The certificate was not signed using the required signature algorithm                                                                                                         |
+| 141     | 0x8D | `CHIP_ERROR_WRONG_CHIP_SIGNATURE_ALGORITHM`          | The CHIP signature was not signed using the required signature algorithm                                                                                                      |
+| 142     | 0x8E | `CHIP_ERROR_SCHEMA_MISMATCH`                         | A mismatch in schema was encountered                                                                                                                                          |
+| 143     | 0x8F | `CHIP_ERROR_INVALID_INTEGER_VALUE`                   | An integer does not have the kind of value we expect                                                                                                                          |
+| 144     | 0x90 | `CHIP_ERROR_CASE_RECONFIG_REQUIRED`                  | CASE is required to reconfigure                                                                                                                                               |
+| 145     | 0x91 | `CHIP_ERROR_TOO_MANY_CASE_RECONFIGURATIONS`          | Too many CASE reconfigurations were received                                                                                                                                  |
+| 146     | 0x92 | `CHIP_ERROR_BAD_REQUEST`                             | The request cannot be processed or fulfilled                                                                                                                                  |
+| 147     | 0x93 | `CHIP_ERROR_INVALID_MESSAGE_FLAG`                    | One or more message flags have invalid value                                                                                                                                  |
+| 148     | 0x94 | `CHIP_ERROR_KEY_EXPORT_RECONFIGURE_REQUIRED`         | Key export protocol required to reconfigure                                                                                                                                   |
+| 149     | 0x95 | `CHIP_ERROR_INVALID_KEY_EXPORT_CONFIGURATION`        | A key export protocol configuration is invalid                                                                                                                                |
+| 150     | 0x96 | `CHIP_ERROR_NO_COMMON_KEY_EXPORT_CONFIGURATIONS`     | No key export protocol configuration is in common                                                                                                                             |
+| 151     | 0x97 | `CHIP_ERROR_NO_KEY_EXPORT_DELEGATE`                  | No key export delegate is set                                                                                                                                                 |
+| 152     | 0x98 | `CHIP_ERROR_UNAUTHORIZED_KEY_EXPORT_REQUEST`         | Unauthorized key export request                                                                                                                                               |
+| 153     | 0x99 | `CHIP_ERROR_UNAUTHORIZED_KEY_EXPORT_RESPONSE`        | Unauthorized key export response                                                                                                                                              |
+| 154     | 0x9A | `CHIP_ERROR_EXPORTED_KEY_AUTHENTICATION_FAILED`      | The CHIP exported encrypted key authentication failed                                                                                                                         |
+| 155     | 0x9B | `CHIP_ERROR_TOO_MANY_SHARED_SESSION_END_NODES`       | The number of shared secure sessions end nodes exceeds the maximum limit                                                                                                      |
+| 156     | 0x9C | `CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_DATA_IB`          | The Attribute Data IB is malformed: it does not contain the required elements                                                                                                 |
+| 157     | 0x9D | `CHIP_ERROR_WRONG_CERT_TYPE`                         | The presented certificate was of the wrong type                                                                                                                               |
+| 158     | 0x9E | `CHIP_ERROR_DEFAULT_EVENT_HANDLER_NOT_CALLED`        | The application's event handler failed to call the default event handler function when presented with an unknown event                                                        |
+| 159     | 0x9F | `CHIP_ERROR_PERSISTED_STORAGE_FAILED`                | Persisted storage memory read/write failure                                                                                                                                   |
+| 160     | 0xA0 | `CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND`       | The specific value is not found in the persisted storage                                                                                                                      |
+| 161     | 0xA1 | `CHIP_ERROR_IM_FABRIC_DELETED`                       | The fabric is deleted, and the corresponding IM resources are released                                                                                                        |
+| 162     | 0xA2 | `CHIP_ERROR_PROFILE_STRING_CONTEXT_NOT_REGISTERED`   | The specified profile string support context is not registered                                                                                                                |
+| 163     | 0xA3 | `CHIP_ERROR_INCOMPATIBLE_SCHEMA_VERSION`             | Encountered a mismatch in compatibility wrt to IDL schema version                                                                                                             |
+| 165     | 0xA5 | `CHIP_ERROR_ACCESS_DENIED`                           | The CHIP message is not granted access for further processing                                                                                                                 |
+| 166     | 0xA6 | `CHIP_ERROR_UNKNOWN_RESOURCE_ID`                     | Unknown resource ID                                                                                                                                                           |
+| 167     | 0xA7 | `CHIP_ERROR_VERSION_MISMATCH`                        | The conditional update of a trait instance path has failed because the local changes are based on an obsolete version of the data                                             |
+| 168     | 0xA8 | `CHIP_ERROR_UNSUPPORTED_THREAD_NETWORK_CREATE`       | Device doesn't support standalone Thread network creation On some legacy devices new Thread network can only be created together with CHIP Fabric using CrateFabric() message |
+| 169     | 0xA9 | `CHIP_ERROR_INCONSISTENT_CONDITIONALITY`             | A TraitPath was declared updated with a conditionality that does not match that of other TraitPaths already updated in the same Trait Instance                                |
+| 170     | 0xAA | `CHIP_ERROR_LOCAL_DATA_INCONSISTENT`                 | The local data does not match any known version of the Trait Instance and cannot support the operation requested                                                              |
+| 171     | 0xAB | `CHIP_ERROR_EVENT_ID_FOUND`                          | Event ID matching the criteria was found                                                                                                                                      |
+| 172     | 0xAC | `CHIP_ERROR_INTERNAL`                                | Internal error                                                                                                                                                                |
+| 173     | 0xAD | `CHIP_ERROR_OPEN_FAILED`                             | Open file failed                                                                                                                                                              |
+| 174     | 0xAE | `CHIP_ERROR_READ_FAILED`                             | Read from file failed                                                                                                                                                         |
+| 175     | 0xAF | `CHIP_ERROR_WRITE_FAILED`                            | Write to file failed                                                                                                                                                          |
+| 176     | 0xB0 | `CHIP_ERROR_DECODE_FAILED`                           | Decoding failed                                                                                                                                                               |
+| 177     | 0xB1 | `CHIP_ERROR_SESSION_KEY_SUSPENDED`                   | Use of the identified session key is suspended                                                                                                                                |
+| 178     | 0xB2 | `CHIP_ERROR_UNSUPPORTED_WIRELESS_REGULATORY_DOMAIN`  | The specified wireless regulatory domain is unsupported                                                                                                                       |
+| 179     | 0xB3 | `CHIP_ERROR_UNSUPPORTED_WIRELESS_OPERATING_LOCATION` | The specified wireless operating location is unsupported                                                                                                                      |
+| 180     | 0xB4 | `CHIP_ERROR_MDNS_COLLISION`                          | The registered service name has collision on the LAN                                                                                                                          |
+| 181     | 0xB5 | `CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB`          | The Attribute path IB is malformed: it does not contain the required path                                                                                                     |
+| 182     | 0xB6 | `CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB`              | The Event Path IB is malformed: it does not contain the required elements                                                                                                     |
+| 183     | 0xB7 | `CHIP_ERROR_IM_MALFORMED_COMMAND_PATH_IB`            | The Command Path IB is malformed: it does not contain the required elements                                                                                                   |
+| 184     | 0xB8 | `CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_STATUS_IB`        | The Attribute Status IB is malformed: it does not contain the required elements                                                                                               |
+| 185     | 0xB9 | `CHIP_ERROR_IM_MALFORMED_COMMAND_DATA_IB`            | The Command Data IB is malformed: it does not contain the required elements                                                                                                   |
+| 186     | 0xBA | `CHIP_ERROR_IM_MALFORMED_EVENT_DATA_IB`              | The Event Data IB is malformed: it does not contain the required elements                                                                                                     |
+| 187     | 0xBB | `CHIP_ERROR_IM_MALFORMED_STATUS_IB`                  | The Attribute Data IB is malformed: it does not contain the required elements                                                                                                 |
+| 188     | 0xBC | `CHIP_ERROR_PEER_NODE_NOT_FOUND`                     | Unable to find the peer node                                                                                                                                                  |
+| 189     | 0xBD | `CHIP_ERROR_HSM`                                     | Error in Hardware security module Used for software fallback option                                                                                                           |
+| 190     | 0xBE | `CHIP_ERROR_INTERMEDIATE_CA_NOT_REQUIRED`            | The commissioner doesn't require an intermediate CA to sign the operational certificates                                                                                      |
+| 191     | 0xBF | `CHIP_ERROR_REAL_TIME_NOT_SYNCED`                    | The system's real time clock is not synchronized to an accurate time source                                                                                                   |
+| 192     | 0xC0 | `CHIP_ERROR_UNEXPECTED_EVENT`                        | An unexpected event was encountered                                                                                                                                           |
+| 193     | 0xC1 | `CHIP_ERROR_ENDPOINT_POOL_FULL`                      | No endpoint pool entry is available                                                                                                                                           |
+| 194     | 0xC2 | `CHIP_ERROR_INBOUND_MESSAGE_TOO_BIG`                 | More inbound message data is pending than available buffer space available to copy it                                                                                         |
+| 195     | 0xC3 | `CHIP_ERROR_OUTBOUND_MESSAGE_TOO_BIG`                | More outbound message data is pending than available buffer space available to copy it                                                                                        |
+| 196     | 0xC4 | `CHIP_ERROR_DUPLICATE_MESSAGE_RECEIVED`              | The received message is a duplicate of a previously received message                                                                                                          |
+| 197     | 0xC5 | `CHIP_ERROR_INVALID_PUBLIC_KEY`                      | The received public key doesn't match locally generated key                                                                                                                   |
+| 198     | 0xC6 | `CHIP_ERROR_FABRIC_MISMATCH_ON_ICA`                  | The fabric ID in ICA certificate doesn't match the one in NOC                                                                                                                 |
+| 199     | 0xC7 | `CHIP_ERROR_MESSAGE_COUNTER_OUT_OF_WINDOW`           | The message counter of the received message is out of receiving window                                                                                                        |
+| 200     | 0xC8 | `CHIP_ERROR_REBOOT_SIGNAL_RECEIVED`                  | Termination signal is received                                                                                                                                                |
+| 201     | 0xC9 | `CHIP_ERROR_NO_SHARED_TRUSTED_ROOT`                  | The CASE session could not be established as peer's credentials do not have a common root of trust                                                                            |
+| 202     | 0xCA | `CHIP_ERROR_IM_STATUS_CODE_RECEIVED`                 | The CASE session could not be established as peer's credentials do not have a common root of trust                                                                            |
+| 203     | 0xCB | `CHIP_ERROR_IM_MALFORMED_COMMAND_STATUS_IB`          | The Command Status IB is malformed: it does not contain the required elements                                                                                                 |
+| 204     | 0xCC | `CHIP_ERROR_IM_MALFORMED_INVOKE_RESPONSE_IB`         | The Invoke Response IB is malformed: it does not contain the required elements                                                                                                |
+| 205     | 0xCD | `CHIP_ERROR_IM_MALFORMED_INVOKE_REQUEST_MESSAGE`     | The Invoke Request Message is malformed: it does not contain the required elements                                                                                            |
+| 206     | 0xCE | `CHIP_ERROR_IM_MALFORMED_INVOKE_RESPONSE_MESSAGE`    | The Invoke Response Message is malformed: it does not contain the required elements                                                                                           |
+| 207     | 0xCF | `CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_REPORT_MESSAGE`   | The Attribute Response Message is malformed: it does not contain the required elements                                                                                        |
+| 208     | 0xD0 | `CHIP_ERROR_IM_MALFORMED_WRITE_REQUEST_MESSAGE`      | The Write Request Message is malformed: it does not contain the required elements                                                                                             |
+| 209     | 0xD1 | `CHIP_ERROR_IM_MALFORMED_EVENT_FILTER_IB`            | The Event Filter IB is malformed: it does not contain the required elements                                                                                                   |
+| 210     | 0xD2 | `CHIP_ERROR_IM_MALFORMED_READ_REQUEST_MESSAGE`       | The Read Request Message is malformed: it does not contain the required elements                                                                                              |
+| 211     | 0xD3 | `CHIP_ERROR_IM_MALFORMED_SUBSCRIBE_REQUEST_MESSAGE`  | The Subscribe Request Message is malformed: it does not contain the required elements                                                                                         |
+| 212     | 0xD4 | `CHIP_ERROR_IM_MALFORMED_SUBSCRIBE_RESPONSE_MESSAGE` | The Subscribe Response Message is malformed: it does not contain the required elements                                                                                        |
+| 213     | 0xD5 | `CHIP_ERROR_IM_MALFORMED_EVENT_REPORT_IB`            | The Event Report IB is malformed: it does not contain the required elements                                                                                                   |
+| 214     | 0xD6 | `CHIP_ERROR_IM_MALFORMED_CLUSTER_PATH_IB`            | The Cluster Path IB is malformed: it does not contain the required elements                                                                                                   |
+| 215     | 0xD7 | `CHIP_ERROR_IM_MALFORMED_DATA_VERSION_FILTER_IB`     | The Data Version Filter IB is malformed: it does not contain the required elements                                                                                            |
+| 216     | 0xD8 | `CHIP_ERROR_NOT_FOUND`                               | The item referenced in the function call was not found                                                                                                                        |
+| 217     | 0xD9 | `CHIP_ERROR_IM_MALFORMED_TIMED_REQUEST_MESSAGE`      | The Timed Request Message is malformed: it does not contain the required elements                                                                                             |
+| 218     | 0xDA | `CHIP_ERROR_INVALID_FILE_IDENTIFIER`                 | The file identifier, encoded in the first few bytes of a processed file, has unexpected value                                                                                 |
+| 219     | 0xDB | `CHIP_ERROR_BUSY`                                    | The Resource is busy and cannot process the request Trying again might work                                                                                                   |
+| 220     | 0xDC | `CHIP_ERROR_MAX_RETRY_EXCEEDED`                      | The maximum retry limit has been exceeded                                                                                                                                     |
+| 221     | 0xDD | `CHIP_ERROR_PROVIDER_LIST_EXHAUSTED`                 | The provider list has been exhausted                                                                                                                                          |
+| 222     | 0xDE | `CHIP_ERROR_ANOTHER_COMMISSIONING_IN_PROGRESS`       | The provider list has been exhausted                                                                                                                                          |
+| 223     | 0xDF | `CHIP_ERROR_INVALID_SCHEME_PREFIX`                   | The scheme field contains an invalid prefix                                                                                                                                   |
+| 224     | 0xE0 | `CHIP_ERROR_MISSING_URI_SEPARATOR`                   | The URI separator is missing                                                                                                                                                  |
+
+## SDK Inet Layer errors
+
+| Decimal | Hex   | Name                                      | Description                                                                                |
+| ------- | ----- | ----------------------------------------- | ------------------------------------------------------------------------------------------ |
+| 257     | 0x101 | `INET_ERROR_WRONG_ADDRESS_TYPE`           | The Internet Protocol (IP) address type or scope does not match the expected type or scope |
+| 258     | 0x102 | `INET_ERROR_PEER_DISCONNECTED`            | A remote connection peer disconnected                                                      |
+| 265     | 0x109 | `INET_ERROR_HOST_NOT_FOUND`               | A requested host name could not be resolved to an address                                  |
+| 266     | 0x10A | `INET_ERROR_DNS_TRY_AGAIN`                | A name server returned a temporary failure indication; try again later                     |
+| 267     | 0x10B | `INET_ERROR_DNS_NO_RECOVERY`              | A name server returned an unrecoverable error                                              |
+| 269     | 0x10D | `INET_ERROR_WRONG_PROTOCOL_TYPE`          | An incorrect or unexpected protocol type was encountered                                   |
+| 270     | 0x10E | `INET_ERROR_UNKNOWN_INTERFACE`            | An unknown interface identifier was encountered                                            |
+| 272     | 0x110 | `INET_ERROR_ADDRESS_NOT_FOUND`            | A requested address type, class, or scope cannot be found                                  |
+| 273     | 0x111 | `INET_ERROR_HOST_NAME_TOO_LONG`           | A requested host name is too long                                                          |
+| 274     | 0x112 | `INET_ERROR_INVALID_HOST_NAME`            | A requested host name and port is invalid                                                  |
+| 277     | 0x115 | `INET_ERROR_IDLE_TIMEOUT`                 | A TCP connection timed out due to inactivity                                               |
+| 279     | 0x117 | `INET_ERROR_INVALID_IPV6_PKT`             | An IPv6 packet is invalid                                                                  |
+| 280     | 0x118 | `INET_ERROR_INTERFACE_INIT_FAILURE`       | Failure to initialize an interface                                                         |
+| 281     | 0x119 | `INET_ERROR_TCP_USER_TIMEOUT`             | TCP Connection timed out waiting for acknowledgment for transmitted packet                 |
+| 282     | 0x11A | `INET_ERROR_TCP_CONNECT_TIMEOUT`          | TCP Connection timed out waiting for a successful connection or a report of an error       |
+| 283     | 0x11B | `INET_ERROR_INCOMPATIBLE_IP_ADDRESS_TYPE` | The supplied text-form IP address was not compatible with the requested IP address type    |
+
+## SDK Device Layer errors
+
+| Decimal | Hex   | Name                                        | Description                                     |
+| ------- | ----- | ------------------------------------------- | ----------------------------------------------- |
+| 513     | 0x201 | `CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND`        | The requested configuration value was not found |
+| 514     | 0x202 | `CHIP_DEVICE_ERROR_NOT_SERVICE_PROVISIONED` | The device has not been service provisioned     |
+| 515     | 0x203 | `CHIP_DEVICE_ERROR_SOFTWARE_UPDATE_ABORTED` | The software update was aborted by application  |
+| 516     | 0x204 | `CHIP_DEVICE_ERROR_SOFTWARE_UPDATE_IGNORED` | The software update was ignored by application  |
+
+## ASN.1 Layer errors
+
+| Decimal | Hex   | Name                              | Description                                                                           |
+| ------- | ----- | --------------------------------- | ------------------------------------------------------------------------------------- |
+| 768     | 0x300 | `ASN1_END`                        | An end of ASN1 container or stream condition occurred                                 |
+| 769     | 0x301 | `ASN1_ERROR_UNDERRUN`             | The ASN1 encoding ended prematurely                                                   |
+| 770     | 0x302 | `ASN1_ERROR_OVERFLOW`             | The encoding exceeds the available space required to write it                         |
+| 771     | 0x303 | `ASN1_ERROR_INVALID_STATE`        | An unexpected or invalid state was encountered                                        |
+| 772     | 0x304 | `ASN1_ERROR_MAX_DEPTH_EXCEEDED`   | The maximum number of container reading contexts was exceeded                         |
+| 773     | 0x305 | `ASN1_ERROR_INVALID_ENCODING`     | The ASN1 encoding is invalid                                                          |
+| 774     | 0x306 | `ASN1_ERROR_UNSUPPORTED_ENCODING` | An unsupported encoding was requested or encountered                                  |
+| 775     | 0x307 | `ASN1_ERROR_TAG_OVERFLOW`         | An encoded tag exceeds the available or allowed space required for it                 |
+| 776     | 0x308 | `ASN1_ERROR_LENGTH_OVERFLOW`      | An encoded length exceeds the available or allowed space required for it              |
+| 777     | 0x309 | `ASN1_ERROR_VALUE_OVERFLOW`       | An encoded value exceeds the available or allowed space required for it               |
+| 778     | 0x30A | `ASN1_ERROR_UNKNOWN_OBJECT_ID`    | A requested object identifier does not match the list of supported object identifiers |
+
+## BLE Layer errors
+
+| Decimal | Hex   | Name                                        | Description                                                                                                                                                                                |
+| ------- | ----- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| 1027    | 0x403 | `BLE_ERROR_NO_CONNECTION_RECEIVED_CALLBACK` | No callback was registered to receive a BLE Transport Protocol (BTP) connection                                                                                                            |
+| 1028    | 0x404 | `BLE_ERROR_CENTRAL_UNSUBSCRIBED`            | A BLE central device unsubscribed from a peripheral device's BLE Transport Protocol (BTP) transmit characteristic                                                                          |
+| 1029    | 0x405 | `BLE_ERROR_GATT_SUBSCRIBE_FAILED`           | A BLE central device failed to subscribe to a peripheral device's BLE Transport Protocol (BTP) transmit characteristic                                                                     |
+| 1030    | 0x406 | `BLE_ERROR_GATT_UNSUBSCRIBE_FAILED`         | A BLE central device failed to unsubscribe from a peripheral device's BLE Transport Protocol (BTP) transmit characteristic                                                                 |
+| 1031    | 0x407 | `BLE_ERROR_GATT_WRITE_FAILED`               | A General Attribute Profile (GATT) write operation failed                                                                                                                                  |
+| 1032    | 0x408 | `BLE_ERROR_GATT_INDICATE_FAILED`            | A General Attribute Profile (GATT) indicate operation failed                                                                                                                               |
+| 1035    | 0x40B | `BLE_ERROR_CHIPOBLE_PROTOCOL_ABORT`         | A BLE Transport Protocol (BTP) error was encountered                                                                                                                                       |
+| 1036    | 0x40C | `BLE_ERROR_REMOTE_DEVICE_DISCONNECTED`      | A remote BLE connection peer disconnected, either actively or due to the expiration of a BLE connection supervision timeout                                                                |
+| 1037    | 0x40D | `BLE_ERROR_APP_CLOSED_CONNECTION`           | The local application closed a BLE connection, and has informed BleLayer                                                                                                                   |
+| 1039    | 0x40F | `BLE_ERROR_NOT_CHIP_DEVICE`                 | A BLE peripheral device did not expose the General Attribute Profile (GATT) service required by the Bluetooth Transport Protocol (BTP)                                                     |
+| 1040    | 0x410 | `BLE_ERROR_INCOMPATIBLE_PROTOCOL_VERSIONS`  | A remote device does not offer a compatible version of the Bluetooth Transport Protocol (BTP)                                                                                              |
+| 1043    | 0x413 | `BLE_ERROR_INVALID_FRAGMENT_SIZE`           | A remote device selected in invalid Bluetooth Transport Protocol (BTP) fragment size                                                                                                       |
+| 1044    | 0x414 | `BLE_ERROR_START_TIMER_FAILED`              | A timer failed to start within BleLayer                                                                                                                                                    |
+| 1045    | 0x415 | `BLE_ERROR_CONNECT_TIMED_OUT`               | A remote BLE peripheral device's Bluetooth Transport Protocol (BTP) connect handshake response timed out                                                                                   |
+| 1046    | 0x416 | `BLE_ERROR_RECEIVE_TIMED_OUT`               | A remote BLE central device's Bluetooth Transport Protocol (BTP) connect handshake timed out                                                                                               |
+| 1047    | 0x417 | `BLE_ERROR_INVALID_MESSAGE`                 | An invalid Bluetooth Transport Protocol (BTP) message was received                                                                                                                         |
+| 1048    | 0x418 | `BLE_ERROR_FRAGMENT_ACK_TIMED_OUT`          | Receipt of an expected Bluetooth Transport Protocol (BTP) fragment acknowledgement timed out                                                                                               |
+| 1049    | 0x419 | `BLE_ERROR_KEEP_ALIVE_TIMED_OUT`            | Receipt of an expected Bluetooth Transport Protocol (BTP) keep-alive fragment timed out                                                                                                    |
+| 1050    | 0x41A | `BLE_ERROR_NO_CONNECT_COMPLETE_CALLBACK`    | No callback was registered to handle Bluetooth Transport Protocol (BTP) connect completion                                                                                                 |
+| 1051    | 0x41B | `BLE_ERROR_INVALID_ACK`                     | A Bluetooth Transport Protcol (BTP) fragment acknowledgement was invalid                                                                                                                   |
+| 1052    | 0x41C | `BLE_ERROR_REASSEMBLER_MISSING_DATA`        | A Bluetooth Transport Protocol (BTP) end-of-message fragment was received, but the total size of the received fragments is less than the indicated size of the original fragmented message |
+| 1053    | 0x41D | `BLE_ERROR_INVALID_BTP_HEADER_FLAGS`        | A set of Bluetooth Transport Protocol (BTP) header flags is invalid                                                                                                                        |
+| 1054    | 0x41E | `BLE_ERROR_INVALID_BTP_SEQUENCE_NUMBER`     | A Bluetooth Transport Protocol (BTP) fragment sequence number is invalid                                                                                                                   |
+| 1055    | 0x41F | `BLE_ERROR_REASSEMBLER_INCORRECT_STATE`     | The Bluetooth Transport Protocol (BTP) message reassembly engine encountered an unexpected state                                                                                           |
+
+## IM Global errors errors
+
+| Decimal | Hex   | Name                       | Description |
+| ------- | ----- | -------------------------- | ----------- |
+| 1280    | 0x500 | `SUCCESS`                  |             |
+| 1281    | 0x501 | `FAILURE`                  |             |
+| 1405    | 0x57D | `INVALID_SUBSCRIPTION`     |             |
+| 1406    | 0x57E | `UNSUPPORTED_ACCESS`       |             |
+| 1407    | 0x57F | `UNSUPPORTED_ENDPOINT`     |             |
+| 1408    | 0x580 | `INVALID_ACTION`           |             |
+| 1409    | 0x581 | `UNSUPPORTED_COMMAND`      |             |
+| 1413    | 0x585 | `INVALID_COMMAND`          |             |
+| 1414    | 0x586 | `UNSUPPORTED_ATTRIBUTE`    |             |
+| 1415    | 0x587 | `CONSTRAINT_ERROR`         |             |
+| 1416    | 0x588 | `UNSUPPORTED_WRITE`        |             |
+| 1417    | 0x589 | `RESOURCE_EXHAUSTED`       |             |
+| 1419    | 0x58B | `NOT_FOUND`                |             |
+| 1420    | 0x58C | `UNREPORTABLE_ATTRIBUTE`   |             |
+| 1421    | 0x58D | `INVALID_DATA_TYPE`        |             |
+| 1423    | 0x58F | `UNSUPPORTED_READ`         |             |
+| 1426    | 0x592 | `DATA_VERSION_MISMATCH`    |             |
+| 1428    | 0x594 | `TIMEOUT`                  |             |
+| 1436    | 0x59C | `BUSY`                     |             |
+| 1475    | 0x5C3 | `UNSUPPORTED_CLUSTER`      |             |
+| 1477    | 0x5C5 | `NO_UPSTREAM_SUBSCRIPTION` |             |
+| 1478    | 0x5C6 | `NEEDS_TIMED_INTERACTION`  |             |
+| 1479    | 0x5C7 | `UNSUPPORTED_EVENT`        |             |
+| 1480    | 0x5C8 | `PATHS_EXHAUSTED`          |             |
+| 1481    | 0x5C9 | `TIMED_REQUEST_MISMATCH`   |             |
+| 1482    | 0x5CA | `FAILSAFE_REQUIRED`        |             |
+| 1520    | 0x5F0 | `WRITE_IGNORED`            |             |
diff --git a/scripts/error_table.py b/scripts/error_table.py
new file mode 100644
index 0000000..5bd1e7a
--- /dev/null
+++ b/scripts/error_table.py
@@ -0,0 +1,151 @@
+#!/usr/bin/env python
+
+#
+#    Copyright (c) 2022 Project CHIP Authors
+#    All rights reserved.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License");
+#    you may not use this file except in compliance with the License.
+#    You may obtain a copy of the License at
+#
+#        http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+#
+
+#
+# Execute as `python scripts/error_table.py > docs/ERROR_CODES.md` from root of repos
+#
+# This script uses heuristics scraping of the headers to generate nice tables
+#
+
+import re
+from dataclasses import dataclass
+from enum import IntEnum
+from pathlib import Path
+from operator import attrgetter
+
+
+@dataclass
+class ErrorCode:
+    code: int
+    name: str
+    description: str
+
+
+@dataclass
+class ErrorDescriptor:
+    section: str
+    code_range: int
+    # `macro_regex` needs to have `code` and `name` named groups.
+    macro_regex: str
+    omit_description: bool = False
+
+
+class CommentState(IntEnum):
+    WAIT_START_COMMENT = 0
+    ACCUMULATE_COMMENT = 1
+
+
+class ErrorCodeLoader:
+    def __init__(self) -> None:
+        self.reset()
+
+    def reset(self):
+        self._comment_state = CommentState.WAIT_START_COMMENT
+        self._last_comment = []
+        self._error_codes: list[ErrorCode] = []
+
+    def _process_comment_extract(self, line):
+        if self._comment_state == CommentState.WAIT_START_COMMENT:
+            if "/**" in line:
+                self._last_comment = []
+                self._comment_state = CommentState.ACCUMULATE_COMMENT
+        elif self._comment_state == CommentState.ACCUMULATE_COMMENT:
+            if "*/" in line:
+                self._comment_state = CommentState.WAIT_START_COMMENT
+            else:
+                self._last_comment.append(line)
+
+    def _process_error_extract(self, descriptor: ErrorDescriptor, line: str):
+        match = re.search(descriptor.macro_regex, line)
+        if match is None:
+            return
+
+        last_comment = "".join(self._last_comment).replace("   ", " ").replace("  ", " ").replace("*", "").replace(".", "")
+        last_comment = last_comment.split("@brief")[-1].strip()
+
+        code = int(match.group("code"), 0)
+        code = descriptor.code_range | code
+        name = match.group("name")
+
+        description = "" if descriptor.omit_description else last_comment
+        self._error_codes.append(ErrorCode(code=code, name=name, description=description))
+
+    def load_error_header(self, filename: Path, descriptor: ErrorDescriptor) -> list[ErrorCode]:
+        self.reset()
+
+        lines = filename.read_text().split("\n")
+        for line in lines:
+            line = line.strip()
+            self._process_comment_extract(line)
+            self._process_error_extract(descriptor, line)
+
+        return self._error_codes
+
+
+def get_section_title(section: str) -> tuple[str, str]:
+    markdown_title = f"{section} errors"
+    anchor_name = f'#{markdown_title.lower().replace(" ","-").replace(".","-")}'
+
+    return markdown_title, anchor_name
+
+
+def dump_table(header_path: Path, descriptor: ErrorDescriptor):
+    loader = ErrorCodeLoader()
+    codes_for_section = loader.load_error_header(header_path, descriptor)
+
+    markdown_title, _ = get_section_title(descriptor.section)
+    print(f"## {markdown_title}")
+    print()
+    print("| Decimal | Hex |  Name | Description |")
+    print("| --- | --- | --- | --- |")
+
+    for code in sorted(codes_for_section, key=attrgetter("code")):
+        print(f"| {code.code} | 0x{code.code:02X} | `{code.name}` | {code.description} |")
+
+    print()
+
+
+def main():
+    descriptors = {
+        "src/lib/core/CHIPError.h": ErrorDescriptor(section="SDK Core", code_range=0x000, macro_regex=r"^#define\s+(?P<name>[_A-Z0-9]+)\s+CHIP(_CORE)?_ERROR[(](?P<code>(0x[a-fA-F0-9]+)|\d+)[)]"),
+        "src/inet/InetError.h": ErrorDescriptor(section="SDK Inet Layer", code_range=0x100, macro_regex=r"^#define\s+(?P<name>[_A-Z0-9]+)\s+CHIP_INET_ERROR[(](?P<code>(0x[a-fA-F0-9]+)|\d+)[)]"),
+        "src/include/platform/CHIPDeviceError.h": ErrorDescriptor(section="SDK Device Layer", code_range=0x200, macro_regex=r"^#define\s+(?P<name>[_A-Z0-9]+)\s+CHIP_DEVICE_ERROR[(](?P<code>(0x[a-fA-F0-9]+)|\d+)[)]"),
+        "src/lib/asn1/ASN1Error.h": ErrorDescriptor(section="ASN.1 Layer", code_range=0x300, macro_regex=r"^#define\s+(?P<name>[_A-Z0-9]+)\s+CHIP_ASN1_ERROR[(](?P<code>(0x[a-fA-F0-9]+)|\d+)[)]"),
+        "src/ble/BleError.h": ErrorDescriptor(section="BLE Layer", code_range=0x400, macro_regex=r"^#define\s+(?P<name>[_A-Z0-9]+)\s+CHIP_BLE_ERROR[(](?P<code>(0x[a-fA-F0-9]+)|\d+)[)]"),
+        "src/protocols/interaction_model/StatusCodeList.h": ErrorDescriptor(section="IM Global errors", code_range=0x500, macro_regex=r"^CHIP_IM_STATUS_CODE[(][A-Za-z0-9_]+\s*,\s*(?P<name>[A-Z0-9_]+)\s*,\s*(?P<code>(0x[a-fA-F0-9]+)|\d+)[)]", omit_description=True),
+    }
+
+    print("# Matter SDK `CHIP_ERROR` enums values")
+    print()
+    print("This file was **AUTOMATICALLY** generated by `python scripts/error_table.py > docs/ERROR_CODES.md`.")
+    print("DO NOT EDIT BY HAND!")
+    print()
+    print("## Table of contents")
+
+    for descriptor in descriptors.values():
+        markdown_title, anchor_name = get_section_title(descriptor.section)
+        print(f"- [{markdown_title}: range `0x{descriptor.code_range:03X}..0x{descriptor.code_range | 0xFF:03X}`]({anchor_name})")
+    print()
+
+    for filename, descriptor in descriptors.items():
+        dump_table(Path(filename), descriptor)
+
+
+if __name__ == "__main__":
+    main()