Bug Fix April 16, 2026

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

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 โ†’