2026-02-22 20:29:27 +00:00
|
|
|
|
# Troubleshooting
|
|
|
|
|
|
|
|
|
|
|
|
## "model ... not found in model_list" or OpenRouter "free is not a valid model ID"
|
|
|
|
|
|
|
|
|
|
|
|
**Symptom:** You see either:
|
|
|
|
|
|
|
|
|
|
|
|
- `Error creating provider: model "openrouter/free" not found in model_list`
|
|
|
|
|
|
- OpenRouter returns 400: `"free is not a valid model ID"`
|
|
|
|
|
|
|
2026-04-22 03:28:47 +00:00
|
|
|
|
**Cause:** PicoClaw now resolves provider/model in two steps:
|
2026-02-22 20:29:27 +00:00
|
|
|
|
|
2026-04-22 03:28:47 +00:00
|
|
|
|
- If `provider` is set, the `model` field is sent to that provider unchanged.
|
|
|
|
|
|
- If `provider` is omitted, PicoClaw infers the provider from the first `/` segment and sends everything after that first `/` as the runtime model ID.
|
|
|
|
|
|
|
|
|
|
|
|
For OpenRouter free-tier routing, the preferred config is explicit `provider`.
|
|
|
|
|
|
|
|
|
|
|
|
- **Wrong:** `"model": "free"` → no OpenRouter provider is selected, so `free` is not a valid OpenRouter model route.
|
|
|
|
|
|
- **Right:** `"provider": "openrouter", "model": "free"` → OpenRouter receives `free`.
|
|
|
|
|
|
- **Also supported:** `"model": "openrouter/free"` → provider resolves to `openrouter`, runtime model ID resolves to `free`.
|
2026-02-22 20:29:27 +00:00
|
|
|
|
|
|
|
|
|
|
**Fix:** In `~/.picoclaw/config.json` (or your config path):
|
|
|
|
|
|
|
docs: fix inaccuracies, add translations, and expand channel docs (#1837)
## Config field fixes (cross-verified against Go source)
- MaixCam: server_address → host + port
- IRC: use_tls → tls, channels_to_join → channels (all 6 languages)
- WeCom AI Bot: callback port 18791 → 18790
- credential_encryption: base_url → api_base, add required model field,
remove incorrect passphrase-only mode docs
- providers.md: agents.defaults.model → model_name (×4), remove
non-existent session.backlog_limit
- migration guide, troubleshooting: agents.defaults.model → model_name
- ANTIGRAVITY_AUTH: fix file path, Go 1.21 → 1.25, model → model_name
- spawn-tasks: fix truncated file, add Heartbeat introduction
- tools_configuration: add Tavily/SearXNG/GLMSearch, exec allow_remote/
timeout_seconds/custom_allow_patterns, cron allow_command, skills
github/search_cache, clawhub timeout/max_zip_size/max_response_size
- configuration: fix builtin skills path (build-time embedded, not cwd),
HEARTBEAT.md marked auto-generated
## Broken link fixes (15 total)
- chat-apps.md: WeCom/Matrix links with wrong relative paths
- providers.md: migration link with extra docs/ prefix
- hardware-compatibility.md: README links with wrong depth (all 5 langs)
- chat-apps.md: WhatsApp dead links → anchor links (zh/ja)
## Getting-started accuracy
- README (all 6 langs): add picoclaw.io as recommended download,
add missing picoclaw model CLI command
- docker.md: clarify first-run trigger condition (all 6 langs)
- configuration.md: fix builtin skills path description (all 6 langs)
## QQ channel
- Add quick setup via q.qq.com/qqbot/openclaw (one-click bot creation)
- Add manual setup as fallback (all 6 languages)
## Feishu channel
- Update setup flow: WebSocket/SDK mode, no webhook URL needed
- Preserve Lark international domain note (all 6 languages)
## chat-apps.md
- Add Feishu, Slack, IRC, OneBot detail sections (all 6 languages)
- Add MaixCam section to ja/fr/pt-br/vi
- Fix all channel doc links to point to correct language version
## New translations (25 files, 5 docs × 5 languages)
debug.md, credential_encryption.md, hardware-compatibility.md,
ANTIGRAVITY_AUTH.md, ANTIGRAVITY_USAGE.md → zh/ja/fr/pt-br/vi
## Channel docs (6 languages each, 60 new files)
telegram, discord, qq, feishu, maixcam, dingtalk, line, slack, onebot,
wecom/wecom_aibot, wecom/wecom_app, wecom/wecom_bot
Co-authored-by: BeaconCat <BeaconCat@users.noreply.github.com>
2026-03-20 14:37:05 +00:00
|
|
|
|
1. **agents.defaults.model_name** must match a `model_name` in `model_list` (e.g. `"openrouter-free"`).
|
2026-04-22 03:28:47 +00:00
|
|
|
|
2. That entry should preferably set **provider** to `openrouter`, and **model** should be a valid OpenRouter model ID, for example:
|
|
|
|
|
|
- `"free"` – auto free-tier
|
2026-02-22 20:29:27 +00:00
|
|
|
|
- `"google/gemini-2.0-flash-exp:free"`
|
|
|
|
|
|
- `"meta-llama/llama-3.1-8b-instruct:free"`
|
|
|
|
|
|
|
|
|
|
|
|
Example snippet:
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"agents": {
|
|
|
|
|
|
"defaults": {
|
docs: fix inaccuracies, add translations, and expand channel docs (#1837)
## Config field fixes (cross-verified against Go source)
- MaixCam: server_address → host + port
- IRC: use_tls → tls, channels_to_join → channels (all 6 languages)
- WeCom AI Bot: callback port 18791 → 18790
- credential_encryption: base_url → api_base, add required model field,
remove incorrect passphrase-only mode docs
- providers.md: agents.defaults.model → model_name (×4), remove
non-existent session.backlog_limit
- migration guide, troubleshooting: agents.defaults.model → model_name
- ANTIGRAVITY_AUTH: fix file path, Go 1.21 → 1.25, model → model_name
- spawn-tasks: fix truncated file, add Heartbeat introduction
- tools_configuration: add Tavily/SearXNG/GLMSearch, exec allow_remote/
timeout_seconds/custom_allow_patterns, cron allow_command, skills
github/search_cache, clawhub timeout/max_zip_size/max_response_size
- configuration: fix builtin skills path (build-time embedded, not cwd),
HEARTBEAT.md marked auto-generated
## Broken link fixes (15 total)
- chat-apps.md: WeCom/Matrix links with wrong relative paths
- providers.md: migration link with extra docs/ prefix
- hardware-compatibility.md: README links with wrong depth (all 5 langs)
- chat-apps.md: WhatsApp dead links → anchor links (zh/ja)
## Getting-started accuracy
- README (all 6 langs): add picoclaw.io as recommended download,
add missing picoclaw model CLI command
- docker.md: clarify first-run trigger condition (all 6 langs)
- configuration.md: fix builtin skills path description (all 6 langs)
## QQ channel
- Add quick setup via q.qq.com/qqbot/openclaw (one-click bot creation)
- Add manual setup as fallback (all 6 languages)
## Feishu channel
- Update setup flow: WebSocket/SDK mode, no webhook URL needed
- Preserve Lark international domain note (all 6 languages)
## chat-apps.md
- Add Feishu, Slack, IRC, OneBot detail sections (all 6 languages)
- Add MaixCam section to ja/fr/pt-br/vi
- Fix all channel doc links to point to correct language version
## New translations (25 files, 5 docs × 5 languages)
debug.md, credential_encryption.md, hardware-compatibility.md,
ANTIGRAVITY_AUTH.md, ANTIGRAVITY_USAGE.md → zh/ja/fr/pt-br/vi
## Channel docs (6 languages each, 60 new files)
telegram, discord, qq, feishu, maixcam, dingtalk, line, slack, onebot,
wecom/wecom_aibot, wecom/wecom_app, wecom/wecom_bot
Co-authored-by: BeaconCat <BeaconCat@users.noreply.github.com>
2026-03-20 14:37:05 +00:00
|
|
|
|
"model_name": "openrouter-free"
|
2026-02-22 20:29:27 +00:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
"model_list": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"model_name": "openrouter-free",
|
2026-04-22 03:28:47 +00:00
|
|
|
|
"provider": "openrouter",
|
|
|
|
|
|
"model": "free",
|
|
|
|
|
|
"api_keys": ["sk-or-v1-YOUR_OPENROUTER_KEY"],
|
2026-02-22 20:29:27 +00:00
|
|
|
|
"api_base": "https://openrouter.ai/api/v1"
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Get your key at [OpenRouter Keys](https://openrouter.ai/keys).
|