Skip to content

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.

CodeMeaningWhat to do
200 / 201SuccessProceed normally
401UnauthorizedYour API token is missing, malformed, or invalid. Check the Authorization: Bearer <token> header.
403Quota exceededYour trial runtime minutes are exhausted. Running containers may be force-terminated and new sessions cannot be started until quota is renewed. Contact Gameye support.
404Not foundThe location, image, or session ID in your request does not exist or is not accessible to your account.
409ConflictA session with the provided id already exists. Use a unique identifier (UUIDs recommended) for each session.
420Capacity unavailableGameye has no available capacity in the requested region, or all nodes are currently locked. Retry after a short delay or try a different region.
422Invalid requestThe request body has invalid syntax or a missing required field. Check your request structure against the POST /session reference.
500Internal server errorAn unexpected error occurred on Gameye’s infrastructure. Capture the identifier field from the response and contact support.

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.

New accounts are provisioned with a runtime quota (for example, 100 minutes total). When exhausted:

  • New POST /session calls return 403
  • Running containers may be force-terminated

Quota details are provided during onboarding. Contact [email protected] to renew or upgrade.

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;
}
}