Errors

Every status Operate As can answer with, what it means, and which ones are worth retrying.

When Operate As can't make the call, you get an HTTP error with a plain-words detail:

HTTP/1.1 409 Conflict
Content-Type: application/json

{ "detail": "Miller Dental's Google access ended. Send them their link to reconnect." }
StatusMeansWhat to do
400A required input is missing, or the pass-through path tries to leave the service's APIFix the request. detail names what's missing
401No key, a key not starting oa_, or one that doesn't exist or was revokedCheck the Authorization header
402The workspace has no planChoose a plan in the dashboard
403Outside the key's clients, services or actions; the client wasn't asked to connect that service; the client paused the connection or allows only reads; your plan doesn't include it; the key is beyond your plan's key allowance; or your agency is suspendeddetail says which. Widen the key's limits, add the service to the client, ask the client, revoke a key or upgrade
404No such action, service or clientCheck the name or ID
409The client hasn't connected the service yet, or their access endedSend the client their link. Retrying won't help
422The body isn't valid, such as a missing clientId. detail is a listFix the request
429Your plan allows no more API calls this period: the allowance on the free plan or with extra calls off, or on a paid plan, your monthly limit on extra calls or three times the allowance. Retry-After gives the seconds until they resetWait, or upgrade
502The service didn't answerRetry after a short wait
503The provider couldn't renew the client's access right nowRetry after a short wait

A 422 lists each problem:

{ "detail": [{ "loc": ["body", "clientId"], "msg": "Field required", "type": "missing" }] }

The libraries turn each status into its own error class: Python, Node, Go.

Retries

What to doStatusesWhy
Retry with backoff502, 503Short outages at the service or provider. Wait 2, 4, then 8 seconds
Wait429No more calls this period. Retry-After says how many seconds, which can be days
Fix the call400, 401, 402, 403, 404, 422The same request fails the same way. Change it first
Needs a person409The client has to reconnect from their link. Retrying won't help

For 429, read Retry-After before sleeping: it can be days, so pausing the workflow or alerting someone is usually better. For 409, listen for the connection.expired webhook to hear about it before a workflow runs into it. A service's own errors inside status, such as its own 429, follow that service's rules.

On this page