IntermediateCaller + Admin

Troubleshoot by Symptom: z-request-id Pinpoints 401 / 502 / Broken Streams

Trace 401 / 403 / 404 / 502 / 503 / timeout / broken stream / OOM by z-request-id end to end — no more guessing.

What the community actually complains about

High-frequency StackOverflow questions: "streaming response turned into one blob after the proxy," "tool-calling JSON won't assemble," "is this 429 rate-limit or quota-exceeded," "is this 502 the gateway or the vendor." AI-call troubleshooting is hard: multi-hop paths, streaming, inconsistent error codes — when something breaks you don't know which hop.

How GateLLM does it

GateLLM assigns each request a z-request-id that threads through the whole log, so you locate by symptom: 401 / 403 → auth and Header ACL; 404 → routing; 502 / 503 → upstream health; timeout → rate limit and cross-ocean; broken stream → buffering and SSE; OOM → config. Error codes are normalized (cross-vendor error semantics unified), streaming passes through natively without buffering, and Token Ops logs are queryable and exportable.

5 levers that actually land

  • z-request-id threads through the whole log — locate by id in one step
  • Triage by symptom: 401 / 403 / 404 / 502 / 503 / timeout / broken stream / OOM
  • Error-code normalization: cross-vendor error semantics unified to one vocabulary
  • Native stream pass-through, no buffering, no breaking SSE or tool calling
  • Token Ops logs queryable and exportable, wired into troubleshooting and reconciliation
Full how-to: Troubleshoot by symptom (docs)

FAQ