The sections below cover the most common LMArena Bridge errors and how to resolve them. For any issue, enabling debug mode first (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/cloudwaddie/lmarenabridge/llms.txt
Use this file to discover all available pages before exploring further.
DEBUG = True in src/constants.py, then restart) will produce detailed logs that make it much easier to identify the cause.
Enable debug mode to get detailed logs for any of the issues below. Set
DEBUG = True in src/constants.py, then restart the bridge."LMArena API error: An error occurred"
"LMArena API error: An error occurred"
This error usually means the bridge reached LMArena but received a generic failure response. The most common causes are an expired auth token or a stale Cloudflare cookie.Steps to resolve:
- Open the dashboard at
http://localhost:8000/dashboard. - Remove the failing
arena-auth-prod-v1token and add a fresh one. To get a new token, log in to LMArena in your browser, send a message, then copy thearena-auth-prod-v1cookie value from DevTools. - Check whether your
cf_clearancecookie has expired. A newcf_clearanceis issued each time you pass a Cloudflare challenge on LMArena. Copy the updated value intoconfig.jsonor the dashboard. - Confirm the model you are requesting is still available on LMArena. Some models are removed or renamed without notice.
Image upload failures
Image upload failures
Image uploads go directly to LMArena’s R2 storage. Failures here are separate from the main API request.Steps to resolve:
- Verify the image is under 10 MB. The limit is enforced before the upload attempt (
MAX_IMAGE_SIZE_BYTESinsrc/constants.py). - Check that the MIME type is one of the supported types:
image/pngimage/jpegimage/gifimage/webpimage/svg+xml
- Confirm that LMArena R2 storage is reachable from your server. A network outage or firewall rule blocking outbound HTTPS to R2 endpoints will cause all uploads to fail.
- If the upload URL itself is invalid, the
next_action_uploadandnext_action_signed_urlvalues in your config may be stale. Refresh your tokens from the dashboard to obtain new signed URLs.
With debug mode on (
DEBUG = True in src/constants.py), the bridge logs image upload progress and the full upload URL, making it easier to identify whether the failure is a size, MIME type, or network issue.Timeout errors
Timeout errors
The default request timeout is 120 seconds (
DEFAULT_REQUEST_TIMEOUT in src/constants.py). Requests that take longer than this are cancelled with a timeout error.Steps to resolve:- For models that consistently produce long responses, increase the timeout by editing
DEFAULT_REQUEST_TIMEOUTinsrc/constants.py. - Check basic network connectivity from your server to LMArena:
- Switch the request to streaming mode (
"stream": truein your API call). Streaming delivers tokens as they are generated, so the connection does not need to stay open for the full response duration before the client sees output.
Token expiry and round-robin rotation
Token expiry and round-robin rotation
arena-auth-prod-v1 tokens expire over time. When all tokens are expired, every request will fail.Steps to resolve:- Add multiple tokens to the dashboard. The bridge uses round-robin rotation across all configured tokens, so having several reduces the impact of any single token expiring.
- Enable
prune_invalid_tokensinconfig.json. This automatically removes tokens that fail validation, keeping the active pool clean. - Periodically refresh your tokens by revisiting LMArena in a browser, triggering a new session, and updating the token values in the dashboard.
Rate limit errors (HTTP 429)
Rate limit errors (HTTP 429)
A 429 response means a particular API key has exceeded its configured requests-per-minute (RPM) limit.Steps to resolve:
- Open the dashboard and increase the RPM limit for the relevant API key.
- If the 429 is coming from LMArena itself (not the bridge), the upstream is throttling your auth token. Add more tokens to distribute the load.
- Review your client application to ensure it is not sending bursts of requests. The bridge applies exponential backoff on upstream 429 responses, but the client will still see the error.
60 (DEFAULT_RATE_LIMIT_RPM in src/constants.py).Cloudflare challenge problems
Cloudflare challenge problems
LMArena uses Cloudflare protections including
cf_clearance cookies, reCAPTCHA v3/v2, and Turnstile challenges. If any of these fail, the bridge cannot reach LMArena.Steps to resolve:- Refresh the
cf_clearancecookie. Open LMArena in a browser, complete any Cloudflare challenge, then copy the updatedcf_clearancevalue intoconfig.json. - If reCAPTCHA failures are frequent, the bridge will automatically fall back between Chrome and Camoufox transports. Check logs with debug mode on to see which transport is being used and whether it is succeeding.
- If running headlessly on a server, ensure that a supported browser (Chrome/Edge or Camoufox) is installed and accessible. The bridge requires a real browser to solve reCAPTCHA and Turnstile challenges.
The optional userscript proxy path can improve reCAPTCHA success rates in strict environments. See the README for setup details.