# SDK error codes

> The stable E_* codes returned by CatSuite extensions, packages, workflows and connectors, with the meaning of each one.

- Language: en
- Canonical URL: https://netcattest.com/catsuite/en/docs/reference/errors
- Section: Reference
- Updated: 2026-10-05
- Other language (pt-BR): https://netcattest.com/catsuite/docs/referencia/erros

SDK errors use stable `E_*` codes, with translated descriptions in the interface. Use the code to handle failures in your JavaScript and to search the logs.

```js
try {
  await cat.http.send({url: 'https://api.aurora.test/timeout'});
} catch (error) {
  if (error.code === 'E_TIMEOUT') {
    cat.log({'pt-BR': 'Tempo esgotado.', en: 'Timed out.'}, 'warning');
  }
}
```

## Package and manifest

| Code | Meaning |
|---|---|
| `E_PACKAGE` | invalid package |
| `E_MANIFEST` | invalid manifest |
| `E_TRANSLATION` | the package must include Brazilian Portuguese and English |
| `E_VERSION` | incompatible package or SDK version |
| `E_ENTRY` | invalid JavaScript entry file |
| `E_HASH` | package integrity does not match the manifest |
| `E_PATH` | the package contains a forbidden path |
| `E_SIZE` | the size limit was exceeded |
| `E_SETTINGS` | invalid `settingsSchema` |
| `E_SIGNATURE` | invalid signature |
| `E_UNSIGNED` | legacy unsigned file; review and approve it to create a locally signed revision |

## Execution

| Code | Meaning |
|---|---|
| `E_SERVICE` | extension engine unavailable |
| `E_RUNTIME` | extension execution failed |
| `E_SYNTAX` | the JavaScript code contains a syntax error |
| `E_EVENT` | invalid event or handler |
| `E_HOOK_ASYNC` | mutation handlers must be synchronous |
| `E_TIMEOUT` | execution timed out |
| `E_MEMORY` | the memory limit was exceeded |
| `E_QUEUE` | the execution queue is full |
| `E_LIMIT` | the extension or resource limit was reached |
| `E_DISABLED` | the extension is disabled |
| `E_SUSPENDED` | the extension was suspended after consecutive failures |
| `E_COMMAND` | invalid or unavailable command |
| `E_UI` | invalid user interface component |

## Permissions and destinations

| Code | Meaning |
|---|---|
| `E_PERMISSION` | the extension does not have permission for this operation |
| `E_APPROVAL` | review permissions before enabling |
| `E_HOST` | destination outside the allowed scope |
| `E_PRIVATE_DESTINATION` | the destination resolved to a private address without explicit scope |
| `E_PROXY_LOOP` | the request points to CatSuite’s own proxy |
| `E_METHOD` | invalid method list |

## HTTP

| Code | Meaning |
|---|---|
| `E_HTTP` | invalid HTTP message |
| `E_HEADER` | invalid HTTP header |
| `E_BODY` | this HTTP body cannot be modified |
| `E_CANCELLED` | request cancelled |
| `E_EXTERNAL` | the simulated API returned an error |
| `E_LABORATORY` | enable laboratory mode in the extension settings |

## Data and credentials

| Code | Meaning |
|---|---|
| `E_STORAGE` | the storage limit was exceeded |
| `E_FINDING` | invalid finding |
| `E_CREDENTIAL` | credential unavailable |
| `E_CREDENTIAL_PROTECTION` | operational credentials require SECRET protection |
| `E_RECOVERY` | secure recovery could not be completed |

## Workflows and connectors

| Code | Meaning |
|---|---|
| `E_STEP` | invalid or unregistered step |
| `E_PARSER` | invalid or duplicated parser |
| `E_CHECKPOINT` | invalid checkpoint or larger than 32 KiB |
| `E_FLOW` | invalid workflow definition |
| `E_JOB` | the remote task is unavailable; review its outcome before resending |
| `E_CONNECTOR` | failure talking to the connector |
| `E_PAIRING` | invalid pairing |
| `E_CAPABILITY_UNAVAILABLE` | the capability is not available on the connector |
| `E_SCHEMA_OPERATION` | invalid OpenAPI operation selection |
