The send-gate evaluation chain
When an outbound send refuses to dispatch, the response names one gate — never two. That’s because every send passes through a fixed ordered chain of checks, and the first gate that says no is the one you hear about. This page describes that chain end-to-end so you can answer “which gate fired, and what’s upstream of it?” without opening five different pages. Every gate below is tenant-owned — you enabled it, you configure its posture, you decide whether it applies to your traffic. One sole exception is called out in place: the US TCPA federal voice dialing window (a platform-global hard guard with no tenant toggle).1. The chain, in order
Read top to bottom. A send exits the chain at the first failing gate and surfaces that gate’s error code — every later gate is silent. The sequence is:Not every send traverses every node — toggles mean skips. A contact
with no STOP-fence doesn’t fail node 2; an org that isn’t HIPAA-mode
skips node 7; a US voice call skips nodes 8–10 (they’re SMS-routed);
a domestic short-code skips 10DLC. The chain is canonical order, not
a mandate that every send hit every gate.
2. The first-matching-gate mental model
The chain evaluates sequentially and exits at the first failure. When you trace a blocked send, walk the chain top-down and ask, at each node, “could this one have fired?”Concrete trace. A US campaign targets a contact whose number used to belong to a litigator, and the send is queued outside the federal 8 am–9 pm recipient-local voice window. What blocks it? The federal window (node 13) — not the litigator check (which sits upstream at node 3 in the broader posture shape), and not DNC (node 4), because the campaign dispatcher hits the federal voice-window gate before the SIP INVITE leaves the platform. The recipient never gets a call, and the response carriesThree implications to keep in mind when triaging:422 TCPA_FEDERAL_DIALING_WINDOW_BLOCKED. Re-check the recipient at 9 am their local time withGET /compliance/quiet-hours/preview, and the next gate in the chain is what you’ll see — potentiallyDNC_CONTACTorHIPAA_BAA_REQUIREDdepending on posture. Don’t assume the first error was the only gate between the send and dispatch.
- The first error you see is not the only gate that matters.
Fix
SENDER_ID_NOT_REGISTEREDand the very same send may then hitTEN_DLC_NOT_REGISTERED. Iterate down the chain. - A re-check curls them in order — don’t fix in reverse.
GET /quiet-hours/previewanswers node 6 and 13;GET /dnc/checkanswers node 4; the BAA status endpoint answers node 7. Re-probe each in sequence after each fix. - A fail-closed transient is never a fix-it-later gate. Node
7 (
HIPAA_BAA_GATE_DB_FAIL) and node 13 (timezone-unresolved blocked) close the send on a transient read rather than let PHI or a federal-window violation through silently. Treat those as support escalations, not retry loops.
3. Per-gate ownership map
Every gate in the chain is owned by you, the tenant, except two. The split matters when you read a posture runbook or write an internal change-management request:“Tenant-owned” here means you control whether the gate applies to
your traffic — not that Orbit mandates the posture. Orbit enforces
what you set; the decision to engage a gate is yours.
4. Before you escalate — map the code to its deep page
Every error code in the chain has exactly one deep page that owns it. Use this table to leave this page and land on the fix, rather than chasing multiple symptoms across docs.
If the code isn’t here, fall back to the
troubleshooting-compliance-error-codes
routing surface, which maps every pre-send compliance code by gate
family, including regional and industry overlays this chain page
doesn’t enumerate.
5. Reading order for the rest of the compliance docs
The chain page is the map. The neighbors:- Compliance posture overview — the toggle map for every control on this page, with defaults and fail-open vs fail-closed per gate.
- Send gates — per-gate behavior, endpoints, and the full fail-open/fail-closed semantics for the gates that are toggles.
- Send-gate decision fork — the inverse view: start from the error code, land at the gate.
- Compliance send-gate error codes — router-by-router walkthroughs with re-check curls.
- Tenant posture before the first send — the runbook that walks the toggle side of this chain in configuration order.
What this page deliberately does not say
- It does not say which gates your traffic should engage — that’s your counsel’s call and your regulator’s charter, not Orbit’s.
- It does not list every regional sender-ID overlay (Argentina Enacom, UAE TDRA, Singapore SGNIC, Saudi CST, Indonesia Komdigi). Those are node 8’s market-specific branches and have their own per-market pages.
- It does not replace legal advice. Read Compliance posture FAQ for the platform-posture framing that pairs with this chain.