Error Codes

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

HTTPMeaning in EnableX context
200Success — action completed, response body contains the result
201Created — resource created successfully (rooms, calls, campaigns)
400Bad Request — missing, malformed, or logically invalid parameter
401Unauthorized — invalid or missing APP_ID / APP_KEY credentials
403Forbidden — valid credentials but insufficient permissions, or a business rule violation
404Not Found — the resource ID does not exist or has been deleted
409Conflict — the resource is in an incompatible state for the requested action
422Unprocessable Entity — parameter validation failed (format valid, value invalid)
429Too Many Requests — rate limit exceeded; use exponential backoff
500Internal Server Error — platform error; retry with backoff; contact support if persistent
503Service Unavailable — planned or unplanned maintenance; check status.enablex.io

Common errors (all APIs)

HTTPerror_codeCause and fix
401UNAUTHORIZEDAPP_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.
401CREDENTIAL_EXPIREDAPI credentials have been rotated. Regenerate keys in the Portal under My Projects → Settings → API Keys.
403PROJECT_SUSPENDEDYour project has been suspended due to a billing or policy issue. Contact EnableX support.
429RATE_LIMITEDYou 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.
500INTERNAL_ERRORUnexpected platform error. Safe to retry after 2–5 seconds. If persistent, file a support ticket with the request_id.

Video API errors

HTTPerror_codeCause and fix
400INVALID_PARAMA required parameter is missing or has an invalid value (e.g., name too long, unsupported quality value).
403ROOM_LOCKEDThe 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.
403MAX_PARTICIPANTS_REACHEDThe room has reached its participant limit. Upgrade your plan or increase the settings.participants limit when creating the room.
404ROOM_NOT_FOUNDThe room_id does not exist or has been deleted. Verify the ID; permanent rooms survive restarts but ad-hoc rooms are deleted when empty.
403TOKEN_EXPIREDThe JWT participant token has expired. Tokens are valid for the duration set at creation. Issue a fresh token — do not cache tokens across sessions.
409RECORDING_ALREADY_ACTIVEA recording is already running. Stop the existing recording before starting a new one.
409RECORDING_NOT_ACTIVEYou attempted to stop a recording that is not running. Check recording state before issuing a stop.
404RECORDING_NOT_FOUNDThe recording_id does not exist or has expired (recordings expire after 90 days).

Voice API errors

HTTPerror_codeCause and fix
400INVALID_PARAMRequired call parameter missing or invalid (e.g., non-E.164 to number, unsupported codec).
403CALLER_ID_NOT_ALLOWEDThe from number is not provisioned on your project. Only assigned DIDs can be used as caller ID.
403DESTINATION_BLOCKEDThe destination number or country is on your project's block list. Check My Projects → Voice → Number Restrictions.
422INVALID_RECIPIENTThe to number is not reachable (disconnected, invalid format, or operator rejection).
409CALL_ALREADY_ENDEDYou attempted to perform an action (transfer, record, hang up) on a call that has already ended.
503CARRIER_UNAVAILABLEThe 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_codeCause
WEBHOOK_TIMEOUTYour server did not respond within 5 seconds. Acknowledge immediately and process asynchronously.
WEBHOOK_HTTP_ERRORYour server returned a non-2xx HTTP status.
INVALID_ACTIONThe action JSON is malformed or references an unsupported action type.
CONNECT_TIMEOUTThe outbound leg in a connect action did not answer within the specified timeout.
RECORD_FAILEDRecording could not be started — check storage configuration.
STREAM_FAILEDMedia Streaming WebSocket connection could not be established to your url.

SMS errors

HTTPerror_codeCause and fix
400INVALID_PARAMMissing or malformed parameter (e.g., text empty, to not E.164).
403SENDER_NOT_CONFIGUREDThe from Sender ID is not assigned to your project. Configure it in the Portal under SMS → Sender IDs.
403DLT_VALIDATION_FAILEDIndia DLT: entity ID, Sender ID, or template ID is invalid or not registered on the DLT portal.
403OPT_OUTThe recipient has opted out via STOP/UNSUBSCRIBE. The number is blocked for future sends until they opt back in.
422INVALID_RECIPIENTThe to number is not in valid E.164 format or is not reachable.
422MESSAGE_TOO_LONGMessage body exceeds carrier limits (160 GSM-7 chars per segment up to 7 segments, or 70 Unicode chars per segment).
429RATE_LIMITEDSending rate exceeds project limit. Use the Campaign Manager for high-volume sends.

WhatsApp errors

HTTPerror_codeCause and fix
403OUTSIDE_SESSION_WINDOWAttempted a session (non-template) message outside the 24-hour customer reply window. Use a pre-approved template instead.
403TEMPLATE_NOT_APPROVEDThe template name does not exist or has not been approved by Meta. Verify template status in the Portal.
403TEMPLATE_PARAM_MISMATCHThe number of parameters in the components array does not match the template's variable count.
403SENDER_NOT_CONFIGUREDThe from WhatsApp number is not registered as a WABA (WhatsApp Business Account) on your project.
403WABA_RESTRICTEDYour WhatsApp Business Account has been restricted or flagged by Meta for policy violations. Check the Meta Business Manager for alerts.
422INVALID_RECIPIENTThe recipient number is not registered on WhatsApp, or not in E.164 format.
429RATE_LIMITEDWhatsApp 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

HTTPerror_codeCause and fix
403RCS_AGENT_NOT_REGISTEREDYour RCS business agent has not been registered or approved. Complete agent registration in the Portal under RCS → Register Agent.
422INVALID_RECIPIENTThe recipient device does not support RCS, or the number is invalid. Ensure fallback_sms is set for graceful degradation.
422CAROUSEL_CARD_COUNTThe carousel array contains fewer than 2 or more than 10 cards.
422SUGGESTION_COUNT_EXCEEDEDA card or message has more than 4 suggestions.
422INVALID_MEDIA_HEIGHTmedia_height must be "SHORT", "MEDIUM", or "TALL".

AI API errors

HTTPerror_codeCause and fix
404RECORDING_NOT_FOUNDThe recording_id submitted for summarization does not exist or has expired. Use a valid, non-expired recording ID.
409SUMMARY_ALREADY_REQUESTEDA summarization job is already in progress for this recording. Poll the existing summary_id for status.
422UNSUPPORTED_LANGUAGEThe requested language code is not supported by the STT or TTS engine. Check the voice catalogue or supported language list.
422AUDIO_TOO_SHORTThe audio submitted is under 3 seconds — too short for transcription or summarization.
422AUDIO_FORMAT_UNSUPPORTEDThe audio file format is not supported. Use WAV (PCM), MP3, OGG, FLAC, or M4A.
500TRANSCRIPTION_FAILEDThe transcription engine encountered an error. Retry once; if it persists, check that the audio file is not corrupted.

Retry guidance

Error classRetry?Strategy
400, 403, 404, 422NoThese are client errors — retrying with the same payload will produce the same error. Fix the request first.
429 Rate LimitedYesExponential backoff: wait 1s, 2s, 4s, 8s. Check response headers for Retry-After if present.
500 Internal ErrorYes (limited)Retry up to 3 times with 2s, 5s, 10s backoff. If all retries fail, surface an error and log the request_id.
503 UnavailableYesCheck 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.
6146 Speech Recognition is cancelled due to an error.

SMS API Error Codes