-
-
Notifications
You must be signed in to change notification settings - Fork 53k
Closed
Description
Bug description
channels.modelByChannel is defined in the Zod schema (ChannelsSchema) and documented in the Configuration Reference, but the runtime config validator rejects it with:
Invalid config at ~/.openclaw/openclaw.json:
- channels.modelByChannel: unknown channel id: modelByChannel
Root cause
The validator builds a whitelist of allowed channels keys:
const allowedChannels = new Set(["defaults", ...CHANNEL_IDS]);CHANNEL_IDS = ["telegram", "whatsapp", "discord", "irc", "googlechat", "slack", "signal", "imessage"].
"modelByChannel" is missing from this set, so the validator rejects it — even though:
- The Zod schema includes it:
modelByChannel: ChannelModelByChannelSchema - The runtime resolver in
reply-*.jsreads fromparams.cfg.channels?.modelByChannel - The docs describe the feature with examples
openclaw doctorrecognizes it: "modelByChannel configured, enabled automatically"
Suggested fix
Add "modelByChannel" to the allowed channels set:
const allowedChannels = new Set(["defaults", "modelByChannel", ...CHANNEL_IDS]);Config used
{
channels: {
modelByChannel: {
telegram: {
"123456789": "anthropic/claude-opus-4-6",
},
},
},
}Environment
- OpenClaw version: 2026.2.21-2 (35a57bc)
- OS: Ubuntu 24.04.3 LTS (x64)
- Node: v22.22.0
Changelog reference
Channels: allow per-channel model overrides via
channels.modelByChanneland note them in /status. Thanks @thewilloftheshadow.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels