Errors
What Teral's error codes mean and what to do about them.
When Teral can't complete a request, the response carries an error code such as err:teral:data:app_not_found. Every code has a page here, at a URL made from the code: /errors/teral/data/app_not_found.
The code has four parts: err, the system that raised it, a category, and the specific error. The system tells you where to look:
| System | Raised by | Usually means |
|---|---|---|
frontline | The gateway in front of your app | Something between the visitor and your app: routing, policies, or your app not answering |
teral | The Teral API | A problem with an API request: authentication, a missing resource, a state that doesn't allow the action |
user | The API or the gateway | A problem with the request itself, such as a body that's too large |
In API responses
API errors come as JSON. type links to the error's page here:
{
"meta": { "requestId": "req_2v8…" },
"error": {
"title": "Not Found",
"detail": "The requested app does not exist.",
"status": 404,
"type": "https://docs.teral.dev/errors/teral/data/app_not_found"
}
}In responses from your app's URLs
When the gateway can't hand a request to your app, it answers itself. Browsers get an error page with the code, a link to its page here, and a request ID. Clients that ask for JSON get:
{
"meta": { "requestId": "req_2v8…" },
"error": {
"code": "err:frontline:capacity:no_running_instances",
"message": "No running instances are available to handle this request."
}
}Errors your app itself returns pass through unchanged.
Getting help
Include the request ID when you contact support@teral.dev. It lets us find the exact request.
All errors
Gateway
Codes starting with err:frontline:.
| Code | Status | Meaning |
|---|---|---|
capacity:deployment_offline | 503 | Deployment offline |
capacity:no_running_instances | 503 | No running instances |
capacity:spend_limit_reached | 402 | Spend budget reached |
client:firewall_denied | 403 | Blocked by firewall |
config:invalid_configuration | 422 | Invalid gateway configuration |
platform:config_load_failed | 500 | Routing unavailable |
platform:internal_server_error | 500 | Internal error |
routing:config_not_found | 404 | No app at this address |
upstream:bad_gateway | 502 | Bad gateway |
upstream:gateway_timeout | 504 | Gateway timeout |
upstream:service_unavailable | 503 | App not reachable |
API
Codes starting with err:teral:.
Request
Codes starting with err:user:.
| Code | Status | Meaning |
|---|---|---|
bad_request:client_closed_request | 499 | Client closed request |
bad_request:request_body_too_large | 413 | Request body too large |
bad_request:request_body_unreadable | 400 | Request body unreadable |
bad_request:request_timeout | 408 / 504 | Request timeout |