We Read 100 OpenClaw Issues About OpenRouter. Here's What We Built Instead. #122
1bcMax
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
We Read 100 OpenClaw Issues About OpenRouter. Here's What We Built Instead.
The Data
We searched OpenClaw's GitHub issues for "openrouter" and read every result. 100 issues. Open and closed. Filed by users who ran into the same structural problems over and over:
These aren't edge cases. They're structural consequences of how OpenRouter works: a middleman that adds latency, mangles model IDs, obscures routing decisions, and introduces its own failure modes on top of the providers it aggregates.
1. Broken Fallback — The #1 Pain Point
From #45663:
From #50389:
When OpenRouter returns a 429 or provider error, OpenClaw's failover logic often doesn't recognize it as retriable. The user sees a raw error. The agent stops. ~20 issues document variations of this: HTTP 529 (Anthropic overloaded) not triggering fallback (#49079), invalid model IDs causing 400 instead of failover (#50017), timeouts in cron sessions with no recovery (#49597).
How ClawRouter Solves This
ClawRouter maintains 8-deep fallback chains per routing tier. When a model fails:
No silent failures. No raw 429s surfaced to the agent.
2. Model ID Mangling — Death by Prefix
From #25665:
From #50711:
OpenRouter uses nested model IDs:
openrouter/deepseek/deepseek-v3.2. OpenClaw's UI, Discord bot, and web gateway all handle these differently. Some add the prefix. Some strip it. Some double it. 15 issues trace back to model ID confusion.How ClawRouter Solves This
ClawRouter uses clean aliases. You say
sonnetand getanthropic/claude-sonnet-4-6. You sayflashand getgoogle/gemini-2.5-flash. No nested prefixes. No double-prefix bugs.One canonical format. No mangling. No UI inconsistency.
3. API Key Hell — 401s, Leakage, and Rotation
From #51056:
From #8615:
API keys are the root cause of an entire category of failures. Keys expire. Keys leak into LLM context (every provider sees every other provider's keys in the serialized request). Keys hit rate limits that can't be load-balanced. 8 issues document auth failures alone.
How ClawRouter Solves This
ClawRouter has no API keys. Zero.
Payment happens via x402 — a cryptographic micropayment protocol. Your agent generates a wallet on first run (BIP-44 derivation, both EVM and Solana). Each request is signed with the wallet's private key. USDC moves per-request.
The wallet is the identity. The signature is the authentication. Nothing to configure, nothing to paste into a config file, nothing for the LLM to accidentally serialize.
4. Cost and Billing Opacity — Surprise Bills
From #25371:
From #7006:
When OpenRouter runs out of credits, it returns a 402 that OpenClaw misreads as a context overflow. OpenClaw then auto-compacts the context and retries — on the same empty balance. Each retry charges the compaction cost. Credits drain faster. The agent burns money trying to fix a billing error it doesn't understand.
How ClawRouter Solves This
Per-request cost visibility. Every response includes cost headers:
Per-request USDC payments. No prepaid balance to drain. Each request shows its price before you pay. When the wallet is empty, requests don't fail — they fall back to the free tier (GPT-OSS-120B).
Budget guard.
maxCostPerRuncaps per-session spending. Two modes:graceful(downgrade to cheaper models) orstrict(hard stop). The $248/day heartbeat scenario is structurally impossible.Usage logging. Every request logs to
~/.openclaw/blockrun/logs/usage-YYYY-MM-DD.jsonlwith model, tier, cost, baseline cost, savings, and latency./statsshows the breakdown.5. Routing Opacity — "Which Model Did I Just Pay For?"
From #7006:
From #35842:
When you use
openrouter/auto, you don't know what model served your request. You can't debug quality regressions. You can't understand cost spikes. You're paying for a black box.How ClawRouter Solves This
ClawRouter's routing is 100% local, open-source, and transparent.
14-dimension weighted classifier runs locally in <1ms. It scores every request across: token count, code presence, reasoning markers, technical terms, multi-step patterns, question complexity, tool signals, and more.
Debug headers on every response:
SSE debug comments in streaming responses show the routing decision inline. You always know which model, why it was selected, and how confident the classifier was.
Four routing profiles give you explicit control:
autoecopremiumfreeNo black box. No mystery routing. Full visibility, full control.
6. Missing Feature Parity — Images, Tools, Caching
From #46255:
From #47707:
OpenRouter doesn't always pass through provider-specific features correctly. Image payloads get dropped. Cache retention headers get ignored. Tool call ID formats cause silent failures with strict providers.
How ClawRouter Solves This
Vision auto-detection. When
image_urlcontent parts are detected, ClawRouter automatically filters the fallback chain to vision-capable models only. No images dropped.Tool calling validation. Every model has a
toolCallingflag. When tools are present in the request, ClawRouter forces agentic routing tiers and excludes models without tool support. No silent tool call failures.Direct provider routing. ClawRouter routes through BlockRun's API directly to providers — not through a second aggregator. One hop, not two. Provider-specific features work because there's no middleman translating them.
7. Model Catalog Staleness — "Where's the New Model?"
From #10687:
From #30152:
When new models launch, OpenRouter's catalog lags. Users configure a model that exists at the provider but isn't in the catalog. The request fails silently or gets rerouted.
How ClawRouter Solves This
ClawRouter maintains a curated catalog of 55+ models across 9 providers (including 11 free models), updated with each release. Delisted models have automatic redirect aliases:
No silent drops. No stale catalog. Models are benchmarked for speed, quality, and tool support before inclusion.
The Full Comparison
/statsmaxCostPerRun)Getting Started
ClawRouter auto-injects itself into
~/.openclaw/openclaw.jsonas a provider on startup. Your existing tools, sessions, and extensions are unchanged.Load a wallet with USDC on Base or Solana, pick a routing profile, and run.
github.com/BlockRunAI/ClawRouter · blockrun.ai ·
npm install -g @blockrun/clawrouterBeta Was this translation helpful? Give feedback.
All reactions