I've been running Claude Code without an Anthropic subscription for about three months. Not because I couldn't afford one — my usage is just wildly uneven. Busy weeks look like 3x a quiet month.
Along the way I hit a few errors that took longer to understand than they should have. Writing them down in case someone searches for the same thing.
"402 Insufficient balance" when you clearly have balance
This one confused me for a full afternoon.
The system places a pre-authorization hold before each request, sized to the maximum possible cost of that call — not the expected cost. It has to, otherwise you could start a large generation with $0.02 left and end up owing money mid-stream.
The hold is usually much larger than what you actually spend. After the response completes, it settles on real usage and releases the difference immediately.
So with a low balance, a request that would genuinely cost 3 cents can be rejected because the hold needed 40. The error message says insufficient balance, which is technically true and practically misleading.
Fix: keep a bigger buffer than you think you need. I keep ~$8 and never see it.
Also worth knowing — these don't get charged at all:
- Request errors
- Zero-usage responses
- You hitting Ctrl+C mid-stream
I tested the last one deliberately. The hold released, balance came back intact.
"503 No supply available"
Means nobody currently has idle quota for that specific model.
This is inherent to how peer-supplied capacity works: supply comes from real people's unused subscription windows, and people have sleep schedules. I hit a wall of 503s at 3am once — most sellers' machines were off or their windows hadn't rolled over.
Two things that helped:
Select several models, not one. The buy page lets you check multiple. When one has no supply, it moves to the next. I keep 3-4 comparable ones checked.
Don't schedule critical work overnight. Sounds obvious. Supply during business hours is dramatically better.
Market availability refreshes continuously and seller windows roll every 5 hours, so 503s usually don't last. That 3am wall cleared in about 20 minutes. But if you need guaranteed availability, this model isn't the right fit — that's a real tradeoff, not a nitpick.
The switch is on but nothing routes through
Three causes, in order of frequency:
1. You didn't restart the tool. Claude Code reads settings.json once at startup. This accounts for most reports. Close every window, open a fresh one.
2. The tool overwrote its own config. Some CLIs rewrite their config on upgrade, wiping the changes. Re-apply from the buy page, restart.
3. Environment variables outrank the config file. This one is Gemini CLI specific and genuinely nasty. ~/.gemini/.env loses to a real environment variable of the same name. If you ever put GEMINI_API_KEY in your .zshrc, that wins — silently.
echo $GEMINI_API_KEY
echo $GOOGLE_GEMINI_BASE_URL
Any output means you're affected. unset them for the session, or delete the lines from your shell rc for a permanent fix.
What actually changed my costs
Honestly not the pricing. It was three habits, all free:
- Clear context between unrelated tasks. Usage is metered on context, not requests. A one-line question in an 8-hour session costs an order of magnitude more than the same question fresh.
- Route exploration through subagents. When it needs to read twenty files to answer something, that lands in your main context and taxes every subsequent message. A subagent reads in its own window and returns a summary.
- Trim the rules file. Mine was 200 lines, loaded in full every session. At 30 lines the agent follows it better — long files bury the important rules.
Do these first. They'll cut more than switching providers will.
Where I use it and where I don't
The mechanism is: your request relays through another user's client, which makes the call upstream. Which means the payload is visible at that hop — no end-to-end encryption. The platform states this on their own homepage rather than burying it, which is partly why I trust the rest of what they say.
That draws a clean line for me. Personal projects and open source: fine. Anything under NDA: not a chance, and I don't think that's a close call.
Tool is called Asale, client's on GitHub if you want to read what it actually sends before running it. I'd consider that a requirement, not a bonus, for anything that relays your requests.
Anyone found a better pattern for the 503 problem than just checking more models? Curious whether people are doing something smarter with fallbacks.
Top comments (0)