ملاحظة اللغة
عند عدم توفر ترجمة، يظهر المحتوى الإنجليزي أدناه كخيار بديل. حافظ على رموز الأخطاء ومسارات API والكتل البرمجية كما هي عند تنفيذ الخطوات.Troubleshooting hub
The Reference group in the sidebar is a flat list of well past 70 pages, and most of them are runbooks. This page exists so you never have to scan that list: every troubleshooting page lives in one of the sections below, grouped by the surface it works on. The Reference index itself — error codes, webhook events, glossary, and FAQ — lives at the top of the sidebar group; this hub indexes only the runbook pages.The queued-lane deep dive is split deliberately across two pages:
message stuck in queued owns the
queued
cause table and the status decoder (it answers to the
reference/troubleshooting route because it was the first runbook), and
message parked before sending owns the
other pre-send holds — scheduled, pending, and quiet-hours. Every other
runbook lives under /troubleshooting/<slug>. Webhook failures split two
ways as well: the Webhook delivery failures
accordion below owns endpoint creation, signature verification, DLQ
recovery, and dedup, while the Webhooks accordion keeps only
the ordering and supersede semantics.Inbox assignment and lifecycle
Inbox assignment and lifecycle
Diagnose an inbound digital conversation that holds in the pending lane,
one that opens but never assigns an agent, or an auto-close sweep that
closes before the window you configured.
- Inbox assignment stuck pending and auto-close timing —
the routing/queue/presence split on an inbound
pendingthread, the pending-replies supervisor queue, and the auto-close idle-window checks. - Ticket attachment storage unavailable —
the
503 ATTACHMENT_STORAGE_UNAVAILABLEon an Inbox attachment upload: why it is a storage-backend fault and never a validation problem, the backoff-then-escalate path, and the request id + checksum bundle support needs. - Attachment and audio size caps —
the deterministic
ATTACHMENT_TOO_LARGE(422/413) andAUDIO_TOO_LARGE(400/413) rejections: per-surface byte ceilings, shrink-re-encode-split fixes, and the never-retry direction.
Presence federation
Presence federation
Decode a degraded provider tile on Settings → Presence — what each
badge means, what caused it, and the exact fix.
- Presence federation degraded states — Reconnect required (the OAuth grant died — reconnect the named integration; includes the Reconnect Microsoft 365 CTA), Retrying, Unrecognised value, and Waiting for first sync, with the graceful-fallback behaviour and the escalation paths.
Messaging queues and receipts
Messaging queues and receipts
Diagnose a message stuck in the pre-send queue, one accepted by the provider
that never reports a delivery outcome, and the recovery pattern when the
carrier receipt itself goes missing.
- Message stuck in queued — the owner of
queuedas its own state: full cause table, escalation path, status decoder. - Message parked before sending —
the matrix for the other pre-send holds:
scheduled,pending, and quiet-hours. - A scheduled message that never fired —
the past-
send_atrow that staysscheduled: split the wall-clock branches from the held-gate branches (quiet hours, compliance profile, sender resolve), rule out a cancellation race, and escalate the drain. - Message sent but no delivery receipt —
the row reached
sentbut adelivered/undeliveredoutcome never lands. - Recover a failed or late DLR — retry and backfill a missing delivery receipt.
- Message undelivered or failed — a terminal non-delivered outcome and what to do next.
- Campaign and journey enrollment errors —
AUDIENCE_TOO_LARGE,JOURNEY_VALIDATION_FAILED, andRESUME_FAILED. - Campaign and conference state-machine transition errors —
the
409family that refuses a launch, approval, lock, or take-over when the object moved on:CAMPAIGN_NOT_DRAFT,CAMPAIGN_NOT_PENDING_APPROVAL,CONFERENCE_STATE_UNRESOLVED, the genericINVALID_STATE_TRANSITION, and the softswitch-onlyINVARIANT_VIOLATION. Map the legal transition, re-read the state, re-issue once. - Fan-out and upload errors —
EMAIL_SEND_FAILED_ALL,ALL_CHANNELS_FAILED, and file-upload rejections. - Media upload failed — the 502
MEDIA_UPLOAD_FAILEDon WhatsApp media send/retrieve, the generic file-upload API, and compliance document upload; decode the stage the message names and split retry from escalate. - Channel unavailable and fallback exhausted —
the 422/503
CHANNEL_UNAVAILABLEwhen no fallback route is configured or every hop in the ladder failed; name the failing hop, then edit the chain in Settings → Channels. - Validation gate codes — the
deterministic
422family:INVALID_PHONE_NUMBER,INVALID_FROM_NUMBER,MISSING_REQUIRED_FIELD, andINVALID_EMAIL. Decode the envelope, pre-flight with number lookup and an E.164 formatter, fix the named field once. - Channel and conversation pre-send refusals —
the deterministic channel/conversation-naming rejects
CHANNEL_REQUIRED,CHANNEL_COMING_SOON,CHANNEL_NOT_REPLYABLE,CONVERSATION_NOT_FOUND, andCONVERSATION_MISMATCHonPOST /api/v1/messagesand thePOST /notifycascade — pass a validchannel, ask support for gated channels, give the rightconversation_idor drop it, and never loop the retry. - Template has no variant for the channel —
the 422
NO_VARIANT_FOR_CHANNELsend gate. - Fallback chain names a channel with no variant —
the authoring-time
VALIDATION_ERRORonfallback_chain. - Sender resolution and pool errors —
SENDER_REQUIRED,SENDER_POOL_NOT_FOUND,NO_SENDER_CONFIGURED, and the numeric-sender ownership pair422 SENDER_NOT_OWNED/503 SENDER_OWNERSHIP_CHECK_UNAVAILABLE. - Sender pool resolved but empty —
SENDER_POOL_EMPTY: the pool exists but has no members to draw from. - Pool spread and anti-snowshoe alerts — pool spread too thin or volume that outgrew the pool.
- Inbound SMS not recording — inbound MO messages or DLRs that never reach your tenant.
- SMPP bind rejects and command_status codes —
decode
bind_*_resprejects (ESME_RINVPASWD,ESME_RINVSYSID,ESME_RINVBNDFMT) andsubmit_sm_respnacks (ESME_RTHROTTLED,ESME_RINVDSTADR,ESME_RINVMSGLEN), plus receipt-never-arrives and the receiver-side MO inbox toggle.
Numbers and sender identity
Numbers and sender identity
Buy numbers, get sender IDs approved, work warming caps, and handle India DLT
or 10DLC gates.
- Number purchase failure — inventory races and provisioning retries.
- Connectivity SIM events —
the seven
connectivity_sim.*webhook family: usage-warning vs limit-exceeded quota gates, theordered → activated ⇄ suspended → terminatedlifecycle decoder, and the silent-stream checklist when the events stop arriving. - Bulk purchase rate-limited by the carrier —
the
CARRIER_RATE_LIMITEDper-row marker on a partially-completedbuy-bulkbatch: the breaker skipped the remaining rows without a carrier call, so retry only thefailed[]slice after a few seconds — never the whole batch. - Port-out rejected or carrier-refused —
the
401 PORT_OUT_PIN_MISMATCHPIN gate,502 CARRIER_PORT_OUT_FAILEDon a carrier refusal, and422 PORT_OUT_NOT_SUPPORTEDwhen the number moves through support. - Number warming caps —
DAILY_CAP_EXCEEDED,WARMING_QUOTA_EXCEEDED, andNUMBER_MPS_EXCEEDED. - Sender ID rejected before send —
the pre-send
SENDER_ID_NOT_REGISTERED/SENDER_ID_NOT_APPROVEDgate. - Numeric sender owned by someone else —
the
422 SENDER_NOT_OWNEDcross-org ownership gate and its fail-closed 503 sibling. - Number masking and proxy-session failures — a masked proxy session that will not bind, forwards inbound-only, bridges the wrong call leg, or drifts on expiry.
- Number lookup and messaging service failures —
LOOKUP_FAILEDon the number-lookup endpoints and the resolver codesMESSAGING_SERVICE_RESOLUTION_FAILED/MESSAGING_SERVICE_NOT_FOUND. - Lookup per-field verdicts —
a 200 response where a
fields=data package came backcoming_soon,not_implemented, orerror; decode the status bucket, map the field to its provider, and split retry from escalate. - Sender warm-up pacing — the advisory warm-up meter on alphanumeric sender IDs and international long codes: a stalled or slow sender with no 429, the reputation-kernel tiers, and the pace-vs-spread fix paths.
- Sender-ID registration rejected or expired — resubmit or reactivate a declined sender.
- India DLT gate — a 422 with a
dlt_template_id/dlt_entity_idrequirement. - 10DLC campaign rejected — resubmit a campaign the carrier declined.
- 10DLC not registered — the
pre-send
TEN_DLC_NOT_REGISTEREDgate on a US 10-digit long code sender with no approved TCR brand+campaign registration. - US toll-free sender blocked with TFV_REQUIRED —
the 422
TFV_REQUIREDgate on a toll-free number before Toll-Free Verification is approved, and how to handle a pending or rejected review. - Sender and asset preflight gates —
MMS_NANP_ONLYon a non-NANP MMS,NOT_SMS_CAPABLEon a sender that cannot carry SMS,TFV_LINT_BLOCKEDon a toll-free filing the content lint refused, andLOA_NOT_SIGNEDon a hosted-messaging order.
Voice
Voice
Triage SIP trunk health, call quality, supervisor coaching surfaces, blocked
destinations, and TCPA dialing windows.
- SIP trunk — registration, health, failover, and capacity.
- Voice call quality — one-way audio, dead air, jitter, and PDD.
- Voice-model credential rejected —
the
422 VOICE_CREDENTIAL_PROVIDER_REJECTEDon registering or rotating a BYO TTS/STT provider key. - Secure-payment capture failures —
the five
SECURE_PAYMENT_*codes on the agent-assisted in-call capture — a missing Jambonz bridge leg, an already-active session, and the four-digitcard_last4mask gate. - Payment-mandate confirmation failures —
MANDATE_CHARGE_FAILED,MANDATE_SPEND_UNVERIFIABLE(503 fail-closed on the cumulative cap), andIDEMPOTENCY_CONFLICT(409 — a reference reused for a different cart) on the in-call AP2 agentic-payment confirmation. - Supervisor takeover, whisper, and barge failures —
the
SUPERVISOR_*500s, the already-active-takeover 409, and thesupervisor.takeover_failedwebhook. - In-call AI handoff, deflection, and follow-up failures —
HANDOFF_FAILED,DEFLECTION_FAILED, andFOLLOWUP_SEND_FAILEDon the three in-call AI exit lanes. - Voice call park orbit —
PARK_SLOTS_FULL,PARK_SLOT_OCCUPIED, andPARK_ALREADY_RETRIEVED. - MCID flag failures —
MCID_INVALID_DIRECTION(outbound call),MCID_CALL_TOO_OLD(aged past the 7-day window), the 404 on an unknown call ID, and the owner/admin role gate on the malicious-call trace export. - Conference lifecycle failures — rooms stuck open, legs that drop, and missing end reasons.
- Call flip and call pickup —
FLIP_*handoff rejects andPICKUP_*claim-race rejects. - Dialer modes not advancing — preview, power, and predictive campaigns that stop pulling contacts.
- TCPA blocked calls — the dialing window a blocked call fell outside.
- State mini-TCPA blocked calls —
TCPA_STATE_DIALING_WINDOW_BLOCKEDon per-state dialing overlays. - FCC AI-voice consent gate —
422 FCC_AI_VOICE_WRITTEN_CONSENT_REQUIREDon AI, TTS, and cloned-voice calls — read thereasonenum, work the audit queue, and attach the written-consent evidence. - Pre-send gate chain blocks an outbound campaign — read the pre-send screen verdict, separate hard fails from warns, and re-submit.
- TCPA voice-guard sentinel breadcrumbs —
trace a
422 TCPA_FEDERAL_DIALING_WINDOW_BLOCKEDback to the dial gate that held it via the Sentry breadcrumb. - Suspect voice destination — destination and emergency blocks.
- Ring-group chain cycles —
the 422
INVALID_RING_GROUP_CYCLEa create/update fires when re-orderingmemberswould loop a group back to itself; also covers pay-by-link reachability and the archival channel gate on one page (a cross-surface misconfiguration triage). - STIR/SHAKEN attestation stuck at C — spam-likely labels, delegate certificates, and branded-calling overrides.
- STIR/SHAKEN never measured — the first check: read the policy defaults, confirm the inbound reporting fields, and measure your posture before diving into downgrade causes.
- Queue capacity gates —
503 QUEUE_DEPTH_CAP_REACHEDon queue entry and the 422 overflow-chain codes on queue config writes. - Disposition and wrap-up errors —
the dispatch-blocking
422 DISPOSITION_REQUIREDgate, the catalog-scoped404 DISPOSITION_CODE_NOT_FOUND(per queue) vs tenant-wide404 DISPOSITION_TAG_NOT_FOUNDsplit, and the409 NOT_IN_WRAPUPpresence mismatch — tell each apart and post exactly one valid re-try. - Queue SLA forecast callback gate —
503+slaCallbackBlocked: trueon queue entry: forecast breach vs head-of-line trip, suggest-vs-block posture, and callback-dispatcher wiring. - Public queue booking failed —
500 BOOKING_FAILEDon the public queue self-booking POST: transient server-side failure vs a slot taken between the availability read and the booking, one-retry-then-poll, and the request-id escalation bundle. - Voice biometrics failures —
the sidecar 503/500 codes on enroll and verify (
VOICE_BIOMETRICS_TIMEOUT,VOICE_BIOMETRICS_UNAVAILABLE,VOICE_BIOMETRICS_AUTH_FAILED,VOICE_BIOMETRICS_ERROR), the operator-sideCONFIGURATION_ERROR, and the fail-closed vs step-up decision for an outage. - Transcription, synthesis, and deepfake failures —
STT_TRANSCRIPTION_FAILED/TTS_SYNTHESIS_FAILEDon the uploads + agent pipeline, the transcript not-yet-produced 422s vs read-side 5xx split,DEEPFAKE_DETECTED(classifier, not consent), and the*_SUMMARY_LLM_MALFORMED502s. - Agent outbound-call and voice-clone guard codes —
the pre-origination agent toggle 409 (
OUTBOUND_CALLING_DISABLED), the reservedGUARDRAIL_VIOLATIONtriage, and theVOICE_CLONE_CONSENT_REQUIRED422 gate. - Failover and failback — a call that fails right after a regional move.
- VOICE_GATEWAY_ERROR at call-send — the 502/503 gateway refusal across outbound dispatch, greeting synthesis, and mid-call actions — transient vs deterministic split, retry-safety, and the support bundle.
- Hot-desking sign-in rejects —
HOT_DESK_RACE,HOT_DESK_NO_ACTIVE_SESSION, and the session-ledger codes.
Video
Video
Diagnose room lifecycle failures, degraded video quality, recordings, and SIP
dial-out. The
VIDEO_* family (30+ codes across the error-codes reference)
is indexed here.- Video room lifecycle failures — join-token refusals, capacity 400s, lobby gating, and agent dispatch errors.
- Video room features: chat, polls, Q&A, invites, RTMP —
the feature-level
VIDEO_*codes — chat policy blocks, polls, invites, moderation, hands/spotlight/whiteboard, RTMP egress, and the SSO-policy gate. - Video call and recording quality —
frozen video, echo, buffer stalls, and the
video.recording.degradedQC verdict. - Video echo and codec mismatch — distorted, delayed, or looping audio with clean packet metrics — acoustic echo, broken device DSP, capture-pipeline fights, and relay-path variance.
Compliance and deliverability gates
Compliance and deliverability gates
DNC, consent receipts, destination blocks, and the strict-sender-id FQDN
gate.
- 401 REAUTH_REQUIRED on destructive operations — the re-auth challenge gate on workspace deletion, GDPR erasure, HIPAA disable, force-transfer, and the 2FA verbs: mint endpoint by verb, header shape, expiry, single-use, and the binding-key reject.
- Messaging pre-send gates —
route a rejected send to the hard gate that fired:
CONTACT_BLOCKED,QUIET_HOURS_BLOCKED/TCPA_QUIET_HOURS,OUTSIDE_SESSION_WINDOW,MESSAGING_NUMBER_DEACTIVATED. - DNC pre-flight returns 403 —
DNC_SYNC_NOT_ENABLEDon a send gate. - CONSENT_RECEIPT_INVALID — a caller receipt the API cannot verify.
- BYOK key unavailable / decryption failed —
BYOK_KEY_UNAVAILABLE409 andDECRYPTION_FAILED502 on a customer-managed-key-enforced field-encryption call. - SMS destination blocks — the spending and destination gate for SMS.
- Strict sender-ID FQDN gate —
SENDER_INVALID_FOR_DESTINATIONwhen strict mode rejects a custom sender. - Mexico NOM-184 consent gate 422s —
MESSAGING_MX_NOM184_CONSENT_MISSINGwhen promotional MX SMS lacks recorded NOM-184 consent. - Türkiye SMS with a URL arrives stripped or empty —
the BTK URL-strip gate: the
tr_url_strip_warningmetadata advisory and the olderMESSAGING_TR_URL_STRIP_VIOLATION422. - Fraud Shield blocked —
FRAUD_SHIELD_BLOCKED403s from your tenant-configured fraud rules. - Fraud review triage — work one alert end to end: the list, acknowledge/dismiss, and the export loop.
- Compliance endpoint permissions: the role matrix —
one table of which workspace role (owner/admin/developer/viewer/billing)
each high-traffic compliance endpoint’s reads and writes need, how to
read a
403 INSUFFICIENT_PERMISSIONS, theagents:read/agents:writescope-versus-role split, and where your own failed call is recorded. - Emergency stop — the org-wide outbound halt an owner/admin activates to freeze every dispatch path.
- RMD filing deficient or expired — FCC Robocall Mitigation Database lifecycle failures.
- HIPAA blocked until the BAA is executed —
the 403 on
PUT /settings/hipaawhile the BAA is pending. - PHI audience requires a BAA —
HIPAA_BAA_REQUIRED422 on a campaign launch. - Erasure request owns the contact —
CONTACT_ERASURE_PENDING422 on a send andERASURE_COOLING_OFF_ACTIVEon a duplicate filing while a GDPR Article-17 request is pending. - Suppression scope mismatch — imported opt-outs still receive messages (or are over-blocked) because the per-row scope your CSV recorded differs from the one you intended.
- Archival channel enablement —
the freeze a contact enters on the
archivedlifecycle stage (blocks future sends until an explicitunarchive: truere-stage) plus the 409ARCHIVAL_CHANNEL_NOT_ENABLEDwhen a legal-hold / archival export targets a channel the archival policy does not include (or archival was never enabled); read the policy, enable the channel viaPUT /compliance/archival, then re-dispatch. - Data-residency error family (RESIDENCY_*) —
the four codes on the pin/lock/unlock surface:
RESIDENCY_NOT_FOUND(unpin-then-unlock — bootstrap the config with PUT first),RESIDENCY_NOT_ENFORCED(lock without an enforced pin — setenforced: truefirst),RESIDENCY_REGION_UNAVAILABLE(enforcing a preview region — read the catalog’savailability, pin advisory-only or open a platform-provisioning ticket), andRESIDENCY_LOCKED(region-change on a frozen pin — deliberateunlock, then re-pin). - Crypto-envelope failures (ENCRYPTION_FAILED / DECRYPTION_FAILED) —
the write-side
ENCRYPTION_FAILED5xx (transient — retry once) and the read-side502 DECRYPTION_FAILEDfrom a staleenc:v1ciphertext during platform master-key rotation; self-recovering once the rotation settles, with the escalation bundle for a 502 that persists. - Opt-out list label conflicts —
the 409
OPT_OUT_LIST_LABEL_CONFLICTonPOST/PATCHof a messaging opt-out list: the label is unique among your tenant’s active lists, so resolve the collision (rename, or soft-delete the holder) and re-send once — the deterministic gate never clears on a blind retry. - Quiet-hours false positives — a send blocked during what the recipient reports as allowed hours: isolate which of the three false-block layers fired (campaign fallback window, org channel gate, TCPA voice rails), route to the owning tenant knob, and file the federal-rail misfire as a platform defect rather than weakening the one non-toggleable gate.
Webhooks
Webhooks
Supersede and ordering semantics for webhook deliveries: how to apply a
later event without letting it overwrite an earlier one.
- Webhook ordering and fan-out —
supersede on
created_atso a later event never rewrites an earlier one.
Webhook delivery failures
Webhook delivery failures
Use the pages below together when a delivery stops reaching your
handler: an endpoint that never saves, a verifier that keeps returning 401,
DLQ’d deliveries you need to recover, or a flood of duplicate deliveries
while you iterate. Start with the page that matches your symptom, not with
the signature runbook by default:
- Webhook endpoint creation errors — shape and permission errors when registering an endpoint.
- Endpoint cap and DNS pre-create gates — the deterministic 422 pair: tenant endpoint quota reached, and a hostname that does not resolve at create time.
- Signature verification (fail open vs fail closed) — raw-body parsing, key-rotation headers, and clock skew: the difference between a router that silently accepts unsigned deliveries and one that returns 401 on every failed check.
- DLQ and recovery — retries, DLQ, and replay for deliveries that exhausted the attempt budget.
- Webhook ordering and dedup — consumer-side dedup of repeated deliveries, keyed on the stable event id.
- Webhook lifecycle error codes —
which lifecycle state each webhook error code fires in, and the fix for
WEBHOOK_DELIVERY_FAILED,WEBHOOK_PROCESSING_FAILED, andWEBHOOK_SIGNATURE_INVALID. - Webhook signature invalid —
the end-to-end
WEBHOOK_SIGNATURE_INVALIDrunbook: reproduce the HMAC mismatch locally, isolate wrong-secret / raw-body / middleware causes, read the delivery log, and recover with the retry semantics. - Integration webhook receiver returns 503 —
the HubSpot / Salesforce / Calendly / Intercom / DIDWW receivers that fail
closed with
WEBHOOK_DISABLED,WEBHOOK_NOT_PROVISIONED, orWEBHOOK_SECRET_NOT_CONFIGUREDwhen the signing secret is unprovisioned, and the per-integration recovery for each.
Verify
Verify
OTP sends and checks, the TOTP/push/passkey/backup-code factor suite, and
the push-notification token ladder.
- Verify OTP — a send or a check that fails.
- Verify factor suite — TOTP, push, passkey, and backup codes.
- Verify binding gates — the
BINDING_REQUIRED/BINDING_MISMATCH422s on send or check. - Push token expiry — APNs 410, FCM
UNREGISTERED, and Web Push endpoint retirements; capability-flag preflight;user_idsregistration drift; and VAPID rotation. - Push broadcast pre-send gates —
BROADCAST_TOO_LARGE(422 audience cap) andCHANNEL_RATE_LIMITED(429 per-channel velocity) on the wildcard (user_ids: ["*"]) surface; fix the gate, re-send once. - KBA caller-verification session errors —
the seven KBA codes (
KBA_SESSION_NOT_FOUND,KBA_SESSION_NOT_ACTIVE,KBA_CONTACT_NOT_FOUND,KBA_NO_CONTACT_LINKED,KBA_INSUFFICIENT_PROFILE_DATA,KBA_LOCKED,KBA_VERIFICATION_REQUIRED): the pending → verified/failed state machine, restart-vs-lookup fixes, and which sensitive endpoints gate on the verified session.
Email
Warmup, bounces and complaints, DNS verification drift, and inbound routing.
- Email bounces and complaints — reputation and suppression follow-ups.
- Email DNS drift — verification drift and recovery.
- Email test-recipient not verified —
the 422
EMAIL_TEST_RECIPIENT_NOT_VERIFIEDon a shared-sender send with no verified domain of your own: the recipient allowlist (saved contact, verified org member, legacy verified address), and the verify-your-domain exit that removes the gate for that sender entirely. - Inbound email never routes — parse domain match rules and trigger issues.
Billing and account gates
Billing and account gates
Spend caps, insufficient balance, and billing-pause blocks on outbound.
- Spend-cap refusals — daily caps per channel.
- INSUFFICIENT_BALANCE — the 402 that blocks a send when credits cannot cover it.
- Billing recovery codes — the
generic 402 ladder behind
INSUFFICIENT_BALANCE:PAYMENT_REQUIRED,INSUFFICIENT_FUNDS, and the auto-top-up pairAUTO_TOPUP_PAYMENT_FAILED/AUTO_TOPUP_MONTHLY_CAP_REACHED. - Billing-gate outbound blocks — recovery from the pause block.
- Pricing-gate errors — the
PRICING_*family: decode the gate, split tenant-owned override fixes (PRICING_RATE_BELOW_WHOLESALE_COST,PRICING_OVERRIDE_SLOT_CONFLICT) from operator-owned FX and rate-card failures, and resolve with one named fix. - Send-price and country gates —
the two pre-send 422s that look alike on the wire:
MAX_PRICE_EXCEEDED(the per-sendmax_priceceiling on the messaging payload) andCOUNTRY_NOT_ALLOWED(the org-wide country allowlist). Decode the envelope, then fix at claim time: raise or dropmax_price, open allow-all or add the ISO code to the allowlist. - Pay-by-link reachability —
the 422
NO_REACHABLE_CHANNELwhen the recipient has no SMS-capable or email-capable (or voice) path for the hosted-checkout link; add a reachable channel to the contact before minting. Cross-surface page (ring-group cycles and the archival channel gate are the other two sections).
AI Agents
AI Agents
Squad daily and per-conversation LLM cost caps, agent runtime errors, and
orchestration gates.
- Squad and conversation cost caps —
SQUAD_DAILY_CAP_REACHED/CONVERSATION_COST_CAP_REACHED429s on the squad envelope: read the ceiling, raise or reset it, and deflect to a fallback queue. - Agent runtime errors —
AGENT_ERROR,AGENT_NOT_CONFIGURED,AGENT_RESPONSE_INVALID,AGENT_EXECUTION_TIMEOUT,INVALID_MODEL, andLLM_PROVIDER_ERROR. - Promotion gate blocked a version —
the fail-closed 422s on agent-version promotion:
PROMOTION_GATE_FAILED(the pinned eval suite regressed) andRED_TEAM_GATE_FAILED(the safety floor or an adversarial-probe baseline broke); read the gate report, fix the failing golden sets or red-team categories, and re-promote.
Account and bundles
Account and bundles
Vertical-bundle activation duplicates, stuck go-live checklists,
version-frozen activations, and dashboard sign-in locks.
- Vertical-bundle activation duplicates — duplicate draft profiles, a checklist that will not clear, and an activation pinned to an old bundle version.
- ACCOUNT_LOCKED at dashboard sign-in — the 403 login lock: brute-force lockout, owner/admin freeze, or suspicious-login hold, and the unlock paths for each.
- Support access (view-as) token failures —
SESSION_REVOKED,TOKEN_ALREADY_USED,MISSING_COOKIE, andINVALID_TOKENon the time-boxed support link you grant from Settings → Security, plus the tenant-side revoke controls. - SAML SSO and SCIM setup failures —
the setup-time misconfiguration family: certificate/ACS 401s, PEM
whitespace/header-strip, SHA-1 vs SHA-256 mismatch, clock-skew vs
NotBefore/NotOnOrAfter, non-owner 403 writes on/api/v1/settings/saml, and SCIM orgSlug/Bearer mismatches. - Tenant provisioning lifecycle —
the four tenant-lifecycle codes —
MISSING_TENANT(400),TENANT_NOT_FOUND(404),TENANT_PROVISIONING(503), andTENANT_SCHEMA_INCOMPLETE(503) — with the 503-vs-404 split and the route to each fix. - DOMAIN_NOT_FOUND on the branded console — the 404 the public host→workspace lookup returns when a host is not a registered, active branded domain: the pending → verifying → active lifecycle, and the only-three-cases checklist for a host that was once resolved.
Platform roads and queues
Platform roads and queues
Auth and IP allowlists, schema readiness, rate limits, and import/flow
failures.
- Authentication and IP allowlist — key mode and IP-allowlist failures.
- TURNSTILE_REQUIRED (422) on public form endpoints — the public marketing-lead capture and DSA-request-portal bot gate: Cloudflare Turnstile token missing, replayed past its single-use window, site-key mismatch, or a visitor-network bot flag.
- API_HOST_RETIRED (410) — the
retired pre-cutover API host’s guard: migrate the SDK base URL, proxy
upstream, or env var to the canonical
api.orbit.devotel.io. - Agent runtime errors —
AGENT_ERROR,AGENT_NOT_CONFIGURED,AGENT_RESPONSE_INVALID,AGENT_EXECUTION_TIMEOUT,INVALID_MODEL, andLLM_PROVIDER_ERROR. - Agent Studio graph and custom-tool validation —
the publish/register validation family:
GRAPH_VALIDATION_FAILED,GRAPH_TOOL_NODES_NOT_SUPPORTED_IN_TEST_RUN,RESERVED_TOOL_NAME,TOOL_NAME_TAKEN,TOOL_DISABLED,INVALID_EXECUTOR_URL,TOOL_IMPL_NOT_REGISTERED,INVALID_HANDOFF_TARGETS,INVALID_KNOWLEDGE_BASE_IDS, andLEGACY_KB_DOC_NOT_RECHUNKABLE. - LLM timeouts and upstream failures —
the model-call failure family:
LLM_TIMEOUT(504) andLLM_UPSTREAM_ERROR(502) on agent runs, plus the conversational-IVR NLU codesIVR_CLASSIFY_LLM_ERROR/IVR_SLOT_EXTRACT_LLM_ERROR(503); per-code retry policy and when to escalate with the request id. - Keyword rules: the matching model — the dispatch model behind inbound auto-reply, opt-in/opt-out, agent hand-off, and flow triggers: match types, creation-order precedence, and why at most one rule fires on a message.
- Prompt-regression blocks an agent-version rollback — the gate that withholds approval on a prompt rollback until the eval run clears.
- A2A federation discovery and peer tasks —
A2A_DISCOVERY_DISABLED422s, unsigned/unverifiable HMAC envelopes (X-A2A-Signature),A2A_PEER_ERRORon outbound delegation, and peer registrations refused by the public-FQDN check. - MCP server registration rejected —
the
INVALID_MCP_SERVER_URL/INVALID_MCP_OAUTH_TOKEN_URLSSRF-guard 422s andMCP_SERVER_NAME_CONFLICT409s. - Orby operator errors — the
ORBY_SESSION_*token failures,ORBY_TOOL_*authorization gates, turn limits (ORBY_RATE_LIMITED,ORBY_ITERATION_LIMIT,ORBY_TURN_FAILED,ORBY_LLM_FAILED), KB readiness (ORBY_KB_*), andORBY_THREAD_NOT_OWNED. - Orby pending-action approval — the
PENDING_ACTION_*409s on the approve/reject card: state, race, expiry, and the fail-closed persist 500. - Action approvals: the human-in-the-loop gate — the dispatch model behind the approval card: which tool calls propose instead of execute, and how a proposal moves from pending to approved, rejected, or expired.
- Tenant schema incomplete — the 503 that gates a route while the schema finishes.
- Custom domain not found on the branded console —
DOMAIN_NOT_FOUND404s on the public host lookups: unclaimed or not-yet-active domain, CNAME drift, and the neutral-theme fallback. - Dashboard error fallback — the “Something went wrong” / “A newer version is available” wall and what to send support.
- Rate limits and cool-downs — 429 cooldown recovery.
- Platform sheds load with 503 UNDER_PRESSURE —
the event-loop-saturated 503, the
UNDER_PRESSUREvsSERVICE_UNAVAILABLEsplit, and the retry posture. - Import jobs — an import that fails or stalls.
- Flow executions failed — a flow whose execution returned an error.
- Idempotency and billing gates —
IDEMPOTENCY_KEY_REQUIRED,DEDUCT_IN_FLIGHT, and auto-top-up alerts. - Recording integrity, legal hold, and QC — seal/verify/export-digest failures, legal-hold 500s, QC stuck or rejected, and consent gates.
Channels and integrations
Channels and integrations
Inbound SMS/RCS/WhatsApp route misses, RCS undelivered, Telegram, and the
APAC channels (LINE, KakaoTalk, WeChat, Zalo).
- Inbound SMS no route — inbound to your number never arrives.
- Inbound LINE, Kakao, WeChat, Zalo no route — the four-channel APAC inbound matrix.
- Inbound WhatsApp or RCS no route — an inbound message with no route assignment.
- Viber inbound and routing errors —
the Tier 1 SMPP vs Tier 2 Business-API split: inbound MO never arriving,
outbound stuck in
queued/undelivered, and the routing error codes. - RCS undelivered — a message that never reached an RCS-capable device.
- RCS brand not approved — a bot
submit or verification that 409s under a held brand; reading
details.brand_statusand the resubmit loop. - WhatsApp Business Calling pre-flight gates — country blocklist, recipient permission, wallet pre-flight, daily cap, and the shared-WABA resolver, plus call-control and initiation codes.
- USSD menu, callback, and simulate —
the graceful
END Service is not available.close, the engineEND Service unavailable.route fault, and thePUT /ussd/menu422 invariant checks. - Telegram channel errors — connect, push, and mutual-hand-off errors.
- WhatsApp connection and re-authentication —
NOT_CONNECTEDvsCONNECTION_INVALID, tier limits, and quality pauses. - WhatsApp campaign auto-paused on a RED quality rating —
reading
WHATSAPP_QUALITY_RED, telling Meta’s auto-pause from an operator pause, and recovering the rating in Meta Business Manager. - WhatsApp sends blocked by a billing failure —
WHATSAPP_BILLING_ISSUE(Meta 131042): fix the WABA payment method in Meta Business Manager, then re-send once. - WhatsApp templates pending, rejected, or blocked — pending review, rejection reasons, and 24h-window errors.
- WhatsApp 24-hour session expired —
WHATSAPP_SESSION_EXPIREDon a free-form send: check the window, fall back to an approved template, and re-engage. - WhatsApp template variable count mismatch —
the send-side pre-flight on
template_paramscount vs{{N}}placeholders. - Wallet pass lifecycle: generation and void —
the three lifecycle edges a pass moves through (
active,voided,expired): whygenerationdrifts between clients, why update-after-void returns409 CONFLICTwhile duplicate-issue returns a 200 replay, why the highest observedgenerationis canonical, and how to cache-bust a deep-link that still opens the old pass. - WhatsApp Flow submissions — flows with no submissions, empty lists, or recipients who cannot open one.
- WhatsApp Flows API 502 META_API_ERROR — the classified 502 on the Flows list/create proxy endpoints: decode the envelope to the upstream cause, split retry-with-Idempotency-Key from reconnect-the-WABA, and stay under Meta’s per-WABA call budget.
- WhatsApp migration stuck — unstick a WABA migration: verification, eligibility, template sync, and webhooks.
- LINE inbound webhook setup — the LINE Developers Console URL gate and tenant resolution by channel id.
- KakaoTalk template gates — the
Alimtalk/Friendtalk 422
VALIDATION_ERRORcontent gates. - WeChat and Zalo credential precedence —
CHANNEL_NOT_CONFIGUREDand the per-org vs platform-default resolution chain. - WhatsApp re-authentication and Embedded Sign-up recovery — token-exchange vs selection errors on the connect flow, an expired stored token, business-verification gates, the WABA-linked-elsewhere conflict, and the back-to-green verify.
- SMPP credential provisioning unavailable —
the 503
SMPP_BACKEND_UNAVAILABLEon SMPP credential issuance and rotation when the tenant schema, the organization encryption key, or the reconciler queue is down — the control-plane failure before any bind is possible. - Messenger/Instagram 24-hour window closed —
the 422
MESSAGING_WINDOW_CLOSEDgate and the tag / fallback ways out. - Messenger channel not connected —
the 409
MESSENGER_NOT_CONNECTEDrefusal on persona reads/writes, theMESSENGER_TOKEN_UNREADABLEsibling, and the not-configured family the envelope routes bydetails.channel_id. - CRM integration sync error codes —
decode
CRM_CONNECTION_MISSING,CRM_AUTH_EXPIRED, andCRM_DISPATCH_FAILEDon Salesforce / HubSpot / CDP sync legs, reconnect once, and stop the un-decoded dispatch retry loop. - Fax send failures — the four classes:
422 content/destination rejects at POST time, the carrier passthrough
diagnostic on
message.failed, the transient 502, and the held-at-sentnever-delivered row, plus the on-success billing rule.
Number identity & caller ID
Number identity & caller ID
Caller-ID verification rejects and STIR/SHAKEN posture checks on the
numbers you present.
- Caller-ID verification rejects —
VERIFICATION_REJECTED,CHALLENGE_INVALID,INVALID_CALLER_ID, andALREADY_VERIFIEDacross the register → confirm flow.
Audience and segments
Audience and segments
AI auto-suggest failures on the Segments empty-state panel.
- Segment auto-suggest failures (
AI_SUGGEST_FAILED) — the 502 onPOST /segments/auto-suggest: split it from the parse and unavailable siblings, retry the transient class once, steer withfocus_hint, and never loop the retry.
CDP / event ingest
CDP / event ingest
Runbooks for the signed-HMAC CDP ingest surface — the 401 signature gate
past, and the event-level 422s your workspace’s own contracts fire.
- Tracking-plan violations (
TRACKING_PLAN_VIOLATION) — the 422 a tenant-owned tracking plan inenforcement=strictreturns: decodedetails.violationsto the fired rule (missing required, type/enum mismatch, extra property), decide between fixing the producer, amending the plan, or dropping to soft, and why no retry passes a tenant-owned policy gate.
Everything else
Everything else
Remaining runbooks for agent queues, conversations, co-browse, and quarantine.
- Agent eval-queue failures — an eval that stalls or fails to start.
- Conversation merge refused —
WEAK_IDENTITY_MATCH_REQUIRES_CONFIRMATION. - Co-browse stuck — a session that never hands off.
- Suspicious or empty queue — an order or import stuck in an enqueued state.
- Quarantined media file — the
FILE_SCAN_QUARANTINEDoutcome. - DSAR export retry — requeue when a data-subject export fails.
- Interactions list and CSV export — the flat 403 on the export for viewer roles, duplicate/skipped rows while paging, and filter quirks on the unified Interactions list.
- Glossary links that 404 — a published internal link into the public glossary names a slug the registry does not ship; the three offender shapes (never-published slug, rename without re-pointing the link, invalid slug pattern) and the pre-publish slug-diff checklist.
From an error code to a runbook
From an error code to a runbook
Most API failures arrive as a structured envelope, not a runbook title —
the
code on the error body tells you which bucket it falls in and what
to do next.- Read
error.codeoff the JSON envelope (anderror.detailsfor the field-level hint). - If the code maps to one of the runbooks above, jump there — that is the fast path.
- If the code is not on this page, fall back to the class table below and follow the retry-safety guidance for its bucket.
The Error Code Reference is the fallthrough
for any code without a dedicated runbook — do not treat it as the dead
end.
Where error codes fit in
When the failure is a specificcode on the API envelope, match that code
against the Error Code Reference first; pick the
runbook from the section above once you know the surface.
How to use a runbook
Every page follows the same shape — a cause table that maps symptoms to fixes, a full-error sample you can paste in a ticket, a decision checklist, the fixes you should NOT try, and when to escalate. Anything in this list matches that pattern; pick one, do not freestyle. This hub is grouped by the surface each runbook works on — voice, messaging, video, compliance, channels, and the rest. When a new runbook ships, file it under the accordion that matches its surface so the index stays complete. For a failure that does not map to one of the runbooks, open a ticket with the steps you tried, thecode from the API envelope when present, and the
output of the endpoint you hit.