OpenClaw + OpenRouter: "payloads=0" Silent Failure from Double Provider Prefix
If your OpenRouter-backed OpenClaw agent completes turns but never actually responds โ
logs show payloads=0, WhatsApp or Telegram gets nothing โ you've likely
hit the double-prefix bug. OpenClaw is sending openrouter/openrouter/auto
to the API instead of openrouter/auto. Here's the fix.
What's Happening
GitHub issue #67698 documents it: when OpenRouter is configured via Docker Compose's
models auth paste-token, the resulting config writes the provider prefix
twice. The gateway logs give it away:
agent model: openrouter/openrouter/auto
The OpenRouter API receives a model ID of openrouter/openrouter/auto,
which it doesn't recognize. The call returns an incomplete turn. OpenClaw logs
payloads=0 โ meaning it sent a request and got back nothing usable.
Your agent appears to be thinking, then silently produces no response.
This is distinct from a network error or auth failure (both of which throw explicit
errors). payloads=0 means the API call technically succeeded but
returned empty content โ a harder bug to spot.
Diagnosis
Check your gateway logs for the double prefix:
openclaw gateway logs | grep "agent model"
If you see openrouter/openrouter/ โ you have this bug.
Also check your models.json:
cat ~/.openclaw/models.json | grep -A3 openrouter
Look for a baseUrl or model ID field that doubles the prefix.
Fix #1 โ Edit models.json Directly (Fastest)
Open ~/.openclaw/models.json (or the per-agent equivalent at
~/.openclaw/agents/<name>/models.json) and fix the model ID:
// Wrong
"model": "openrouter/openrouter/auto"
// Correct
"model": "openrouter/auto"
Also check the baseUrl field โ it should be
https://openrouter.ai/api/v1 with no extra path segments.
openclaw gateway restart
Fix #2 โ Re-authenticate Without the Docker Prefix Issue
If you're running in Docker and the models auth paste-token flow
created the bad config, re-do the auth step using the native CLI path instead:
openclaw configure
Navigate to the provider section and re-enter your OpenRouter API key. The interactive configure path uses the correct model ID construction and doesn't double-prefix.
Fix #3 โ Specify the Full Correct Model ID
Rather than using openrouter/auto (which lets OpenRouter choose),
specify your actual model explicitly:
// Examples of valid OpenRouter model IDs in OpenClaw
"model": "openrouter/anthropic/claude-sonnet-4-6"
"model": "openrouter/google/gemini-2.5-pro"
"model": "openrouter/meta-llama/llama-4-maverick"
This sidesteps the auto-routing entirely and makes it obvious if something is wrong with the model string.
Verify the Fix
# Check the model resolves correctly now
openclaw models list | grep openrouter
# Run a test inference
openclaw infer "say hello"
If models list shows the correct ID (no double prefix) and
infer returns a response โ you're fixed.
TL;DR
payloads=0+ OpenRouter = double prefix bug (openrouter/openrouter/auto)- Check:
openclaw gateway logs | grep "agent model" - Fix: edit
~/.openclaw/models.json, remove the extra prefix, restart gateway - Tracking: GitHub issue #67698
OpenRouter setup giving you trouble?
ClawReady handles multi-provider OpenClaw configs โ OpenRouter, Ollama, Anthropic, fallback chains โ set up correctly from day one.
Book a Free Call โ