Error Codes
Gameye returns standard HTTP status codes. Internal errors are not surfaced in full — you receive a generic error body plus a trace identifier. This page explains what each code means and what to do.
Status codes
Section titled “Status codes”| Code | Meaning | What to do |
|---|---|---|
200 / 201 | Success | Proceed normally |
401 | Unauthorized | Your API token is missing, malformed, or invalid. Check the Authorization: Bearer <token> header. |
403 | Quota exceeded | Your trial runtime minutes are exhausted. Running containers may be force-terminated and new sessions cannot be started until quota is renewed. Contact Gameye support. |
404 | Not found | The location, image, or session ID in your request does not exist or is not accessible to your account. |
409 | Conflict | A session with the provided id already exists. Use a unique identifier (UUIDs recommended) for each session. |
420 | Capacity unavailable | Gameye has no available capacity in the requested region, or all nodes are currently locked. Retry after a short delay or try a different region. |
422 | Invalid request | The request body has invalid syntax or a missing required field. Check your request structure against the POST /session reference. |
500 | Internal server error | An unexpected error occurred on Gameye’s infrastructure. Capture the identifier field from the response and contact support. |
The trace identifier
Section titled “The trace identifier”Every error response includes an identifier field. This is a trace ID that Gameye uses to look up the full error context internally.
{ "statusCode": 500, "code": "INTERNAL_ERROR", "message": "An unexpected error occurred.", "identifier": "3bc545b7-4750-47e6-a918-c93debc58663", "path": "/session", "timestamp": "2026-03-05T12:00:00Z"}Always include the identifier when contacting support about an error. Without it, diagnosing the specific issue is significantly slower.
Trial quota (403)
Section titled “Trial quota (403)”New accounts are provisioned with a runtime quota (for example, 100 minutes total). When exhausted:
- New
POST /sessioncalls return403 - Running containers may be force-terminated
Quota details are provided during onboarding. Contact [email protected] to renew or upgrade.
Capacity unavailable (420)
Section titled “Capacity unavailable (420)”A 420 response means Gameye could not place a session in the requested region at that moment. This can happen when:
- All nodes in the region are at capacity
- The region is undergoing maintenance
- A burst of session starts triggered rate limiting
Recommended handling: implement retry logic with a short delay (2–5 seconds), and fall back to a secondary region if retries fail.
async function startSessionWithFallback(primaryRegion, fallbackRegion, config) { try { return await startSession({ ...config, location: primaryRegion }); } catch (err) { if (err.statusCode === 420) { return await startSession({ ...config, location: fallbackRegion }); } throw err; }}