All EnableX APIs return errors in a consistent JSON envelope. HTTP status codes signal the class of failure; the error_code field in the response body identifies the specific cause. This reference covers all error codes across the Video, Voice, and Messaging APIs.
Error response envelope
{
"status": "error",
"error_code": "INVALID_PARAM",
"message": "The 'to' field must be a valid E.164 phone number.",
"request_id": "req_7f3a1b9c2d4e5f6a"
}
Always log request_id when reporting issues to EnableX support — it allows tracing the exact request through the platform.
HTTP status codes
HTTP
Meaning in EnableX context
200
Success — action completed, response body contains the result
201
Created — resource created successfully (rooms, calls, campaigns)
400
Bad Request — missing, malformed, or logically invalid parameter
401
Unauthorized — invalid or missing APP_ID / APP_KEY credentials
403
Forbidden — valid credentials but insufficient permissions, or a business rule violation
404
Not Found — the resource ID does not exist or has been deleted
409
Conflict — the resource is in an incompatible state for the requested action
422
Unprocessable Entity — parameter validation failed (format valid, value invalid)
429
Too Many Requests — rate limit exceeded; use exponential backoff
500
Internal Server Error — platform error; retry with backoff; contact support if persistent
503
Service Unavailable — planned or unplanned maintenance; check status.enablex.io
Common errors (all APIs)
HTTP
error_code
Cause and fix
401
UNAUTHORIZED
APP_ID or APP_KEY is wrong, expired, or not encoded correctly. Verify Basic Auth: base64(APP_ID:APP_KEY). Check for trailing whitespace in your credentials.
401
CREDENTIAL_EXPIRED
API credentials have been rotated. Regenerate keys in the Portal under My Projects → Settings → API Keys.
403
PROJECT_SUSPENDED
Your project has been suspended due to a billing or policy issue. Contact EnableX support.
429
RATE_LIMITED
You have exceeded the API rate limit for this endpoint. Implement exponential backoff starting at 1 second. Default limits: 100 req/s for messaging, 20 req/s for voice call creation.
500
INTERNAL_ERROR
Unexpected platform error. Safe to retry after 2–5 seconds. If persistent, file a support ticket with the request_id.
Video API errors
HTTP
error_code
Cause and fix
400
INVALID_PARAM
A required parameter is missing or has an invalid value (e.g., name too long, unsupported quality value).
403
ROOM_LOCKED
The room has been locked by the moderator. New participants cannot join. Unlock via PUT /video/v2/rooms/{room_id}/unlock or issue a moderator token.
403
MAX_PARTICIPANTS_REACHED
The room has reached its participant limit. Upgrade your plan or increase the settings.participants limit when creating the room.
404
ROOM_NOT_FOUND
The room_id does not exist or has been deleted. Verify the ID; permanent rooms survive restarts but ad-hoc rooms are deleted when empty.
403
TOKEN_EXPIRED
The JWT participant token has expired. Tokens are valid for the duration set at creation. Issue a fresh token — do not cache tokens across sessions.
409
RECORDING_ALREADY_ACTIVE
A recording is already running. Stop the existing recording before starting a new one.
409
RECORDING_NOT_ACTIVE
You attempted to stop a recording that is not running. Check recording state before issuing a stop.
404
RECORDING_NOT_FOUND
The recording_id does not exist or has expired (recordings expire after 90 days).
Voice API errors
HTTP
error_code
Cause and fix
400
INVALID_PARAM
Required call parameter missing or invalid (e.g., non-E.164 to number, unsupported codec).
403
CALLER_ID_NOT_ALLOWED
The from number is not provisioned on your project. Only assigned DIDs can be used as caller ID.
403
DESTINATION_BLOCKED
The destination number or country is on your project's block list. Check My Projects → Voice → Number Restrictions.
422
INVALID_RECIPIENT
The to number is not reachable (disconnected, invalid format, or operator rejection).
409
CALL_ALREADY_ENDED
You attempted to perform an action (transfer, record, hang up) on a call that has already ended.
503
CARRIER_UNAVAILABLE
The destination carrier is temporarily unreachable. Retry with backoff. If affecting multiple destinations, check status.enablex.io.
Webhook action errors
When your webhook returns an invalid action JSON, EnableX terminates the call and posts a call-complete event with one of the following error_code values:
error_code
Cause
WEBHOOK_TIMEOUT
Your server did not respond within 5 seconds. Acknowledge immediately and process asynchronously.
WEBHOOK_HTTP_ERROR
Your server returned a non-2xx HTTP status.
INVALID_ACTION
The action JSON is malformed or references an unsupported action type.
CONNECT_TIMEOUT
The outbound leg in a connect action did not answer within the specified timeout.
RECORD_FAILED
Recording could not be started — check storage configuration.
STREAM_FAILED
Media Streaming WebSocket connection could not be established to your url.
SMS errors
HTTP
error_code
Cause and fix
400
INVALID_PARAM
Missing or malformed parameter (e.g., text empty, to not E.164).
403
SENDER_NOT_CONFIGURED
The from Sender ID is not assigned to your project. Configure it in the Portal under SMS → Sender IDs.
403
DLT_VALIDATION_FAILED
India DLT: entity ID, Sender ID, or template ID is invalid or not registered on the DLT portal.
403
OPT_OUT
The recipient has opted out via STOP/UNSUBSCRIBE. The number is blocked for future sends until they opt back in.
422
INVALID_RECIPIENT
The to number is not in valid E.164 format or is not reachable.
422
MESSAGE_TOO_LONG
Message body exceeds carrier limits (160 GSM-7 chars per segment up to 7 segments, or 70 Unicode chars per segment).
429
RATE_LIMITED
Sending rate exceeds project limit. Use the Campaign Manager for high-volume sends.
WhatsApp errors
HTTP
error_code
Cause and fix
403
OUTSIDE_SESSION_WINDOW
Attempted a session (non-template) message outside the 24-hour customer reply window. Use a pre-approved template instead.
403
TEMPLATE_NOT_APPROVED
The template name does not exist or has not been approved by Meta. Verify template status in the Portal.
403
TEMPLATE_PARAM_MISMATCH
The number of parameters in the components array does not match the template's variable count.
403
SENDER_NOT_CONFIGURED
The from WhatsApp number is not registered as a WABA (WhatsApp Business Account) on your project.
403
WABA_RESTRICTED
Your WhatsApp Business Account has been restricted or flagged by Meta for policy violations. Check the Meta Business Manager for alerts.
422
INVALID_RECIPIENT
The recipient number is not registered on WhatsApp, or not in E.164 format.
429
RATE_LIMITED
WhatsApp Business rate limit reached. Limits depend on your WABA tier (Tier 1: 1,000 conversations/day, Tier 2: 10,000, Tier 3: 100,000).
RCS errors
HTTP
error_code
Cause and fix
403
RCS_AGENT_NOT_REGISTERED
Your RCS business agent has not been registered or approved. Complete agent registration in the Portal under RCS → Register Agent.
422
INVALID_RECIPIENT
The recipient device does not support RCS, or the number is invalid. Ensure fallback_sms is set for graceful degradation.
422
CAROUSEL_CARD_COUNT
The carousel array contains fewer than 2 or more than 10 cards.
422
SUGGESTION_COUNT_EXCEEDED
A card or message has more than 4 suggestions.
422
INVALID_MEDIA_HEIGHT
media_height must be "SHORT", "MEDIUM", or "TALL".
AI API errors
HTTP
error_code
Cause and fix
404
RECORDING_NOT_FOUND
The recording_id submitted for summarization does not exist or has expired. Use a valid, non-expired recording ID.
409
SUMMARY_ALREADY_REQUESTED
A summarization job is already in progress for this recording. Poll the existing summary_id for status.
422
UNSUPPORTED_LANGUAGE
The requested language code is not supported by the STT or TTS engine. Check the voice catalogue or supported language list.
422
AUDIO_TOO_SHORT
The audio submitted is under 3 seconds — too short for transcription or summarization.
422
AUDIO_FORMAT_UNSUPPORTED
The audio file format is not supported. Use WAV (PCM), MP3, OGG, FLAC, or M4A.
500
TRANSCRIPTION_FAILED
The transcription engine encountered an error. Retry once; if it persists, check that the audio file is not corrupted.
Retry guidance
Error class
Retry?
Strategy
400, 403, 404, 422
No
These are client errors — retrying with the same payload will produce the same error. Fix the request first.
429 Rate Limited
Yes
Exponential backoff: wait 1s, 2s, 4s, 8s. Check response headers for Retry-After if present.
500 Internal Error
Yes (limited)
Retry up to 3 times with 2s, 5s, 10s backoff. If all retries fail, surface an error and log the request_id.
503 Unavailable
Yes
Check status.enablex.io for a maintenance window. Retry when the incident is resolved.
Video API Error Codes
Video API Code
Description
10000
The application is not found.
10001
The room_id URL parameter is missing.
10002
The required data is missing in name (Room Name).
10003
An invalid value is passed in settings.scheduled.
10004
The required data is missing in settings.scheduled_time.
10005
An invalid date or time format is specified for settings.scheduled_time.
10006
The value of date or time value specified for settings.scheduled_time is illegible.
10007
An invalid value is specified for settings.participants.
10008
An invalid value is specified for settings.auto_recording.
10009
The key of settings cannot be recognized.
10010
The required data is missing in owner_ref.
10011
An invalid value is specified for settings.duration.
10012
An invalid value is specified for settings.active_talker.
10013
An invalid value is specified for settings.wait_moderator.
10014
An invalid value is specified for settings.quality.
10015
The required data is missing in sip.uri.
10016
An invalid value is specified forsettings.adhoc.
10017
An invalid value is specified for settings.adhoc
10018
Illegible parameter. This parameter is not valid for this Room Type.
10019
An invalid value is specified for settings.mode.
10020
An illegible parameter is specified for settings.mode.
10021
Room quality higher than the application quality is not permitted.
10022
An invalid value is specified for settings.moderators.
10023
An invalid value is specified for settings.moderators.
10024
An illegible value is specified for settings.peep.
10025
An illegible value is specified for settings.knock.
10026
An invalid value of SIP URI is specified for settings.aor.
10030
The update request for the active room is denided.
10101
The required JSON key is missing for name (User Name).
10102
The required JSON key is missing for user_ref.
10103
The required JSON key is missing for role.
10104
An invalid value is specified for role.
10105
The server is busy.
10106
Illegible Request. Update of this Room Type is not allowed.
10111
Token denied. The conference is over.
10112
Token denied. Tried to connect beyond the permissible cut-off time.
10113
Token denied. The room is not active.
10114
Token denied. The room is full.
10201
The Reason URL parameter is missing for from_date.
10202
The URL parameter is missing for to_date.
10203
The URL parameter is missing for room-id.
10204
The Reason URL parameter is missing for conf-num (Conference Number).
40001
The room is not found.
40002
Token denied. Unauthorized access to the room is not permitted.
50000
An internal server error has occurred.
50001
Failed to create the room.
50002
Failed to fetch the list of rooms.
50003
Failed to get room information.
50004
Failed to delete the room.
50005
Failed to get the list of users for the room.
Voice API Error Codes
Voice API Code
Description
400
Bad request.
401
The Basic Authorization header is not found.
404
The resource is not found. Details of the resource will be added in the JSON body.
405
This method is not allowed.
407
The authorization token is either wrong or not found.
500
An internal server error has occurred.
511
Additional authentication is required.
6101
The Voice service is not subscribed.
6110
The application is not found.
6111
The call is not established.
6112
The call is in the bridged mode and cannot play the media.
6113
An error has occurred while creating a bridge.
6114
Failed to add the channel to the bridge.
6115
Failed to the play voice menu on the bridge.
6116
External media request has failed.
6117
Text-to-speech conversion is not supported for the Voice service.
6118
The phone number is not found for the service.
6119
Failed to start recording on the bridge.
6120
An error occurred while converting text to speech.
6121
Request for converting text to speech has failed.
6122
The play request is pending.
6123
Failed playing text-to-speech on the media channel.
6124
An invalid parameter is specified for the outbound call.
6125
Request for text-to-speech has failed.
6126
Request for text-to-speech has failed.
6127
Request for text-to-speech has failed.
6128
The text-to-speech request is longer than the allowed limit of 1024 characters.
6129
The number of text-to-speech requests has exceeded the quota or rate of requests allowed for your subscription.
6130
A network or server-side issue has occurred.
6131
An invalid parameter is specified for the outbound call.
6132
An error occurred while answering an incoming call.
6133
The inbound number is not associated with any service.
6134
Unable to connect to the Voice server.
6135
An invalid parameter has been specified for the recording request.
6136
The specified recording format is not supported on the system.
6137
This recording file name exists in the system.
6138
Resource for recording is not found.
6139
Not able to stop the recording.
6140
Error occurred while fetching the recording file.
6141
The SIP gateway service is unavailable.
6142
Checking of the Wallet balance failed.
6143
The speech was not recognized.
6144
Speech recognition is cancelled by the user.
6145
Speech recognition is cancelled due to the end of the stream.