Teral

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:

SystemRaised byUsually means
frontlineThe gateway in front of your appSomething between the visitor and your app: routing, policies, or your app not answering
teralThe Teral APIA problem with an API request: authentication, a missing resource, a state that doesn't allow the action
userThe API or the gatewayA 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:.

CodeStatusMeaning
capacity:deployment_offline503Deployment offline
capacity:no_running_instances503No running instances
capacity:spend_limit_reached402Spend budget reached
client:firewall_denied403Blocked by firewall
config:invalid_configuration422Invalid gateway configuration
platform:config_load_failed500Routing unavailable
platform:internal_server_error500Internal error
routing:config_not_found404No app at this address
upstream:bad_gateway502Bad gateway
upstream:gateway_timeout504Gateway timeout
upstream:service_unavailable503App not reachable

API

Codes starting with err:teral:.

CodeStatusMeaning
application:assertion_failed500Internal check failed
application:deployment_is_current412Already live
application:deployment_is_production412Production deployments can't be stopped
application:deployment_is_stopping412Deployment already stopping
application:deployment_no_current412No live deployment
application:deployment_not_production412Not a production deployment
application:deployment_not_ready412Deployment not ready
application:deployment_not_running412Deployment not running
application:deployment_not_stopped412Deployment not stopped
application:invalid_environment_settings400Environment can't be deployed
application:invalid_input400Invalid input
application:precondition_failed412Precondition failed
application:protected_resource412Delete protection is on
application:service_unavailable500Service unavailable
application:unexpected_error500Unexpected error
authentication:key_not_found401API key not found
authentication:malformed400Authorization header malformed
authentication:missing400API key missing
authorization:forbidden403Forbidden
authorization:insufficient_permissions403Insufficient permissions
authorization:key_disabled403API key disabled
authorization:workspace_disabled403Workspace disabled
data:app_already_exists409App already exists
data:app_not_found404App not found
data:deployment_not_found404Deployment not found
data:domain_already_exists409Domain already added
data:domain_not_found404Domain not found
data:environment_not_found404Environment not found
data:key_not_found404API key not found
data:policy_not_found404Policy not found
data:project_already_exists409Project already exists
data:project_not_found404Project not found
data:workspace_not_found404Workspace not found
limits:custom_domain_limit_exceeded403Custom domain limit reached

Request

Codes starting with err:user:.

CodeStatusMeaning
bad_request:client_closed_request499Client closed request
bad_request:request_body_too_large413Request body too large
bad_request:request_body_unreadable400Request body unreadable
bad_request:request_timeout408 / 504Request timeout
Edit on GitHub

On this page