Errors, limits and versions
Last updated
Errors
Every error has the same JSON body:
{
"error": "No service acme/shopp.",
"code": "not_found",
"hint": "List your services with GET /api/v1/services."
}
error: what went wrong, in one sentence. It can change; do not test it.code: stable. Test this in scripts.hint: the next thing to try, often a call.nullwhen there is none.
code |
HTTP | What to do |
|---|---|---|
bad_request |
400, 405 | Fix the request. error names the field: body.template must be a string. Unknown keys and unknown query parameters are errors too. |
unauthorized |
401 | No token, or the token is not valid any more. Make a new one on the account page. |
forbidden |
403 | The token works, but this is not yours (for example a repo without the GitHub App). |
not_found |
404 | No such service, deployment, env var or route. Services of other organizations are "not found" too. |
conflict |
409 | Not possible in the current state, for example cancel a deployment that is done. |
too_large |
413 | The body is over 1 MB. |
rate_limited |
429 | Too many requests. Wait the seconds in Retry-After. |
unavailable |
502, 503 | dudbox or GitHub cannot answer right now. Try again in a minute. |
internal |
500 | A bug on our side. Try again; if it stays, tell us. |
Limits
- 300 requests a minute per token. A stream (events,
follow=true) counts once while it is open. - A body is at most 1 MB. An env value is at most 32 KB.
?wait=on a deployment is at most 300 seconds.- Lists give everything at once. A list that gets too long will get pages later, with a new optional query parameter; the answers you get today stay the same.
Versions
This is version 1: /api/v1. What these docs show stays:
- A documented field keeps its name, its type and its meaning.
- New fields and new routes can come at any time. Ignore keys you do not know.
- New values can come in
triggerand in other string fields that say "more may come".statusandcodechange only in a new version. - A change that would break a caller goes to
/api/v2./api/v1then keeps working, and this page says until when.
The dashboard uses its own private routes (/api/dash). Do not call them: they change without notice.
This page as Markdown, for agents: /docs/api/errors.md