Status codes and troubleshooting

What each failure means, which side it comes from, and the first thing to check.

Core Updated 4 September 2026

These pages describe ShellOrbit as it runs today. Breaking changes to the HTTP API are announced before they ship, and existing request and response shapes stay supported.

The event never arrived

Check the provider’s own delivery log first. If the provider shows a failure to reach us, the cause is almost always the URL: a typo in the endpoint id, a deleted endpoint, or a custom domain whose CNAME no longer resolves.

If the provider shows a 429 from us, you are over the ingest rate on that endpoint or over a free plan limit. See limits.

The event arrived but was never delivered

Look at the event’s state:

StateMeaningFirst thing to check
receivedStored, no destination configuredAdd a destination to the endpoint
queuedWaiting for a worker or for its next retryThe attempt trail shows the next scheduled time
pausedEndpoint delivery is pausedResume the endpoint
retryingAt least one attempt failedThe response code and body excerpt on the last attempt
failedEvery attempt is exhaustedFix the handler, then replay
deliveredA 2xx was receivedNothing

Common destination failures

What we recordUsual cause
timeout after 15 secondsYour handler is doing slow work before responding. Acknowledge first, work after
502 or 503The destination was restarting or behind a proxy that was not ready
401 or 403Your handler rejected the request, often signature verification against a re-serialised body
404The route moved or the deploy removed it
tls_errorExpired or misconfigured certificate on the destination
dns_errorThe hostname stopped resolving
410Treated as permanent, no further attempts

Signature verification keeps failing

Verify against the raw request body, before any JSON parsing. Re-serialising changes whitespace and key order, which changes the bytes and therefore the hash. Also confirm the timestamp tolerance is not too tight for a retried delivery, since a retry can arrive minutes after the signed timestamp.

The same event keeps arriving

Delivery is at least once. If your handler is slow to answer, we may time out and retry while your side is still processing. Answer with a 2xx as soon as the event is stored, and key your writes on the event id.

I need help

Send the endpoint id, one event id, and the timestamp to support@shellorbit.com. Those three details let us read the same records you are looking at, and the first reply will contain an answer rather than a request for more information.