-
-
Notifications
You must be signed in to change notification settings - Fork 69.4k
channels.modelByChannel rejected by runtime validator: "unknown channel id: modelByChannel" #23351
Copy link
Copy link
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
Type
Fields
Give feedbackNo fields configured for issues without a type.