Troubleshooting¶
401 Missing or invalid AIRelays bearer token¶
The client is not sending the relay token AIRelays expects.
Checks:
- run
airelays status - confirm the Relay section shows
Relay token: present - confirm the client credential matches the current AIRelays token
- if needed, run
airelays token showto reveal the current token, orairelays token rotateto issue a new one - confirm the client is calling
http://HOST:PORT/v1/..., not justhttp://HOST:PORT/... - use
airelays status --jsonif you want field-based checks in automation - if you intended an open local relay, restart with
airelays serve --no-authorAIRELAYS_REQUIRE_BEARER_AUTH=false
503 No ChatGPT login found¶
AIRelays could not find reusable upstream auth.
Checks:
- run
airelays status - confirm the Upstream Session section shows
Ready: yes - if not, run
airelays login - if you upgraded from earlier AIRelay local state, AIRelays can reuse singular-path config or data directories and older
AIRelay Authkeychain entries automatically - if
airelays logincannot bindlocalhost:1455, retry later or useairelays login --device
429 Too many invalid authentication attempts from this IP¶
AIRelays temporarily blocked the client after repeated bad tokens.
Checks:
- wait for the
Retry-Afterwindow to pass - update the client to the correct token
- consider rotating the relay token if the wrong value leaked into automation
- remember that repeated
401responses from the same IP cause the temporary429block
429 Request rate limit exceeded for this IP¶
The local per-IP request budget was exceeded.
Options:
- reduce client concurrency
- spread traffic over time
- raise the configured limits in
config.tomlif this is expected local usage
Token refresh failed¶
The stored upstream ChatGPT login could not be refreshed.
Checks:
- run
airelays loginagain - confirm
airelays statusreports an authenticated upstream login
501 unsupported_error¶
The route is not yet verified against the subscription backend.
Current unverified categories include:
- embeddings
- image generation
- audio
- realtime sessions
422 on uploaded files¶
AIRelays only inlines supported text-like files up to 1 MB and supported images.
Checks:
- confirm the file type is text-like or an image
- confirm the file is not too large for text inlining
- use
/v1/files/{file_id}and/v1/files/{file_id}/contentto inspect what was stored locally
413 on uploaded files¶
AIRelays rejected the upload before or during local storage.
Checks:
- confirm the file is below the configured per-file upload ceiling
- confirm the relay has not reached its configured total stored-upload quota
- review
docs/configuration.mdif you need to raisemax_upload_bytesormax_total_upload_bytes