Reference
Runtime errors
Codes are stable: a failed call reports one, and a session that stops unexpectedly delivers one to onError as error.code (also in the session state's error). Branch on the code, never on the message text; error.recoverable tells you whether offering a retry makes sense.
Authentication
Fix the auth token or key configuration; do not retry unchanged.
| Code | Meaning |
|---|---|
| AUTH_REQUIRED | No auth token was presented. |
| API_KEY_INVALID | The API key in the token is unknown or inactive. |
| AUTH_SIGNATURE_REQUIRED | The workspace or key requires a PS256-signed token; alg=none was presented. |
| AUTH_MODE_MISMATCH | The token's alg does not match the API key's auth mode (Signed keys accept only PS256; Unsigned keys only alg=none). |
| AUTH_ENVELOPE_INVALID | The token is malformed, or its claims are missing or wrong. |
| AUTH_ENVELOPE_REPLAYED | This token was already used (replayed `jti`). |
| AUTH_ENVELOPE_LIFETIME_EXCEEDED | The token is valid for longer than the maximum allowed lifetime. |
| ACCOUNT_REQUIRED | The token does not name an account. |
| SIGNING_KEY_NOT_FOUND | The token's key id matches no active signing key in the workspace. |
Quotas and billing
Surface to the user or your operations; retrying will not help until limits change.
| Code | Meaning |
|---|---|
| API_KEY_QUOTA_EXCEEDED | The API key's units limit is reached. |
| WORKSPACE_QUOTA_EXCEEDED | The workspace units limit is reached. |
| ACCOUNT_QUOTA_EXCEEDED | The account's units limit is reached. |
| FORM_QUOTA_EXCEEDED | The form's units limit is reached. |
| PLAN_ALLOWANCE_EXHAUSTED | Included units are used up and no prepaid units remain. |
| OVERSPEND_LIMIT_REACHED | The configured overspend cap is reached. |
| CONCURRENCY_LIMIT_REACHED | Too many workflows are running concurrently. |
Form and workflow resolution
Check the form key, version, language, and workflow configuration.
| Code | Meaning |
|---|---|
| FORM_NOT_FOUND | No form with this key in the workspace. |
| FORM_VERSION_NOT_PUBLISHED | The requested version is not published. |
| NO_PUBLISHED_VERSION_FOR_LANGUAGE | No published version exists for the requested language. |
| FORM_KEY_PORTAL_OWNED | This form is configured in Speechineer — use portal mode for it. |
| WORKFLOW_NOT_FOUND | The requested workflow does not exist. |
| WORKFLOW_STANDALONE_MODE_UNSUPPORTED | This workflow has no standalone mode. |
| SESSION_NOT_FOUND | The workflow you tried to resume no longer exists. |
Lifecycle
The component is deactivated or archived — resolve in the portal.
| Code | Meaning |
|---|---|
| WORKSPACE_INACTIVE | The workspace is deactivated or archived. |
| CLIENT_INACTIVE | The owning organization is deactivated. |
| COMPONENT_ARCHIVED | A write was attempted on an archived component. |
Connection close codes
A session that ends unexpectedly reports one of these; the SDK surfaces them through onError and resumes automatically where it can.
| Close code | Meaning |
|---|---|
| 4404 | The workflow was no longer available; the SDK restarts it. |
| 4501 | Transcription or extraction failed. |
| 4502 | A model integration failed. |
| 4503 | Audio could not be processed. |
| 4504 | Results could not be delivered. |
| 4505 | The workflow stopped unexpectedly. |