Skip to main content
Most API errors return JSON with an error string. Some include a machine-readable code or additional state. Do not assume every error has a code.
The numbers above are illustrative; inspect the actual response.

Startup failure versus operation failure

A creation request may receive 202 and fail later. Watch state and error while provisioning; do not equate HTTP acceptance with a working phone. Once a phone is ready, an operation error is a separate result. It does not automatically mean a new phone is required. Check the session state, current app, or screen before deciding what to do next.

Useful codes

  • beta_access_required: authenticated account is not allowed into the beta.
  • session_limit: account capacity is full.
  • idempotency_conflict: a create key was reused with different content.
  • create_request_completed: the original session has finished cleanup.
  • create_request_recorded: creation was recorded but the runtime cannot currently be read.
  • install_unknown: the install may have completed; inspect before retrying.
For support, include the session ID, create request key if used, approximate time, HTTP status, and public error. Leave out API keys, viewer URLs, screenshots containing private data, and app credentials.