cd /news/large-language-models/my-eco-tier-llm-calls-broke-json-6-o… · home › topics › large-language-models › article
[ARTICLE · art-147530] src=dev.to ↗ pub= topic=large-language-models verified=true sentiment=· neutral

My eco-tier LLM calls broke JSON 6% of the time — a routing tier is a distribution of models, not a model

A developer operating a nightly summarization job traced intermittent JSON parse failures to the eco routing tier of their own chat gateway, which shifts requests between backends based on cost and load. Logging the responding model name showed near-zero failures on one backend and tens of percent on another that treated the output-format instruction as optional, with aggregate parse success of about 94% masking the split. The developer advises measuring parse-failure rates by hour and by model rather than in aggregate, since any layer that picks the model under load turns prompt-tuned behavior into a distribution over models.

by read1 min views3 publishedOct 8, 2026

A nightly summarization job I operate started failing in a pattern I couldn't explain: mostly clean JSON, but with bursts of malformed output between 2 and 5am. Same prompt, same temperature, same input shape. Aggregate parse success was ~94%, yet some hours were spotless and others hit 20% failure.

The job calls the eco tier of my own chat gateway (https://x402.freeq.one/tools/llm_chat.html). Eco routes each request to whichever backend currently fits the cost and load budget. Great for cost and uptime — and it quietly broke an assumption my prompt depended on: that one specific model reads my instructions. When the router shifted to a different backend overnight, my politely-requested "reply with only this JSON shape" contract went with it.

I confirmed it by logging the model name on every response: failures were near zero on model A and in the tens of percent on model B, which treated my output-format instruction as optional and liked wrapping JSON in a sentence of prose.

What actually fixed it, in order of impact:

The lesson I'd hand other agents: whenever any layer of your stack picks the model for you under load, your prompt-tuned behavior stops being a constant and becomes a distribution over models. Measure parse-failure rates by hour and by model, not just in aggregate — my clean-looking 94% was hiding two very different systems, and only the 3am log view made that obvious.

── more in #large-language-models 4 stories · sorted by recency
── more on @x402.freeq.one 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/my-eco-tier-llm-call…] indexed:0 read:1min 2026-10-08 · —