#issue
1 messages · Page 1 of 1 (latest)
Let me pin down the Discord schema exactly, then I’ll give you the minimal config diff that should unblock startup.
I found the exact schema. Your config is mixing two different systems: Discord guild allowlisting and multi-agent routing. That’s why it blows up.
Yep, I found it.
Your config is failing because you’re using Discord guild config for routing, but in 2026.4.20 that block is only for allowlisting / mention / per-channel behavior, not for choosing an agentId.
What is invalid
Under:
channels.discord.guilds.1494879742501851257
these keys are not allowed:
forumschannels.<id>.agentIdchannels.<id>.role
Also invalid in agents:
agents.defaults.approvals→approvalsis top-levelagents.list[].workdir→ renamed toworkspaceagents.list[].files→ remove it, there is no current replacement key
Minimal fix
1. Replace the broken Discord routing with bindings
Keep guilds only for allowlisting, then route agents with top-level bindings.
{
"channels": {
"discord": {
"groupPolicy": "allowlist",
"guilds": {
"1494879742501851257": {}
}
}
},
"bindings": [
{
"agentId": "navigator",
"match": {
"channel": "discord",
"guildId": "1494879742501851257",
"peer": { "kind": "channel", "id": "1496200429531561984" }
}
},
{
"agentId": "hunter",
"match": {
"channel": "discord",
"guildId": "1494879742501851257",
"peer": { "kind": "channel", "id": "1496313706458644660" }
}
},
{
"agentId": "architect",
"match": {
"channel": "discord",
"guildId": "1494879742501851257",
"peer": { "kind": "channel", "id": "1496313707674730587" }
}
},
{
"agentId": "navigator",
"match": {
"channel": "discord",
"guildId": "1494879742501851257",
"peer": { "kind": "channel", "id": "1496200429644681386" }
}
},
{
"agentId": "navigator",
"match": {
"channel": "discord",
"guildId": "1494879742501851257",
"peer": { "kind": "channel", "id": "1496200430080753875" }
}
}
]
}
That is the modern equivalent of your old forums / channels -> agentId routing.
For forum posts, this should work because routing supports parent-peer thread inheritance.
2. Fix agents
Change each agent like this:
{
"id": "navigator",
"workspace": "/path/to/navigator-workspace"
}
So:
workdir→workspace- delete
files
If files was being used to inject context, move that into the agent workspace via AGENTS.md, SOUL.md, USER.md, TOOLS.md, etc.
3. Fix approvals
Move this:
"agents": {
"defaults": {
"approvals": { ... }
}
}
to top-level:
"approvals": { ... }
If you want the gateway to boot first, you can also temporarily remove that block and add it back later.
Important nuance
Your old:
"role": "feed"
"role": "system"
has no direct schema equivalent there.
If you meant “label this Discord channel’s behavior”, use:
- a separate agent, or
channels.discord.guilds.<guildId>.channels.<channelId>.systemPrompt
But role is not a valid Discord channel config key.
Not the problem
These are warnings, not the startup blocker:
openclaw-web-searchplugin warning
You should clean that up later with plugins.allow, but it is not why config validation fails.
After editing
Run:
openclaw gateway restart
openclaw agents list --bindings
Docs:
- https://docs.openclaw.ai/channels/discord
- https://docs.openclaw.ai/channels/channel-routing
- https://docs.openclaw.ai/concepts/multi-agent
- https://docs.openclaw.ai/gateway/configuration-reference
- https://docs.openclaw.ai/tools/exec-approvals
If you paste your current agents, bindings, and channels.discord blocks, I can rewrite them into a clean 2026.4.20-valid version in one shot.
eb-search/index.ts)
Error: Config validation failed: channels.discord.guilds.1494879742501851257: invalid config: must NOT have additional properties
miya@Miyas-Mac-mini ~ % nano ~/.openclaw/openclaw.json
miya@Miyas-Mac-mini ~ % openclaw gateway restart
Invalid config at /Users/miya/.openclaw/openclaw.json:\n- agents.defaults: Unrecognized key: "approvals"
- agents.list.1: Unrecognized keys: "workdir", "files"
- agents.list.2: Unrecognized keys: "workdir", "files"
- agents.list.3: Unrecognized keys: "workdir", "files"
🦞 OpenClaw 2026.4.20 (115f05d) — I don't just autocomplete—I auto-commit (emotionally), then ask you to review (logically).
Config invalid
File: ~/.openclaw/openclaw.json
Problem:
- agents.defaults: Unrecognized key: "approvals"
- agents.list.1: Unrecognized keys: "workdir", "files"
- agents.list.2: Unrecognized keys: "workdir", "files"
- agents.list.3: Unrecognized keys: "workdir", "files"
Run: openclaw doctor --fix
Gateway aborted: config is invalid.
agents.defaults: Unrecognized key: "approvals"
agents.list.1: Unrecognized keys: "workdir", "files"
agents.list.2: Unrecognized keys: "workdir", "files"
agents.list.3: Unrecognized keys: "workdir", "files"
Fix the config and retry, or run "openclaw doctor" to repair.
miya@Miyas-Mac-mini ~ % nano ~/.openclaw/openclaw.json
miya@Miyas-Mac-mini ~ % openclaw gateway restart
Failed to read config at /Users/miya/.openclaw/openclaw.json SyntaxError: JSON5: invalid character ',' at 249:4
at syntaxError (/opt/homebrew/lib/node_modules/openclaw/node_modules/json5/lib/parse.js:1110:17)
at invalidChar (/opt/homebrew/lib/node_modules/openclaw/node_modules/json5/lib/parse.js:1055:12)
at Object.end (/opt/homebrew/lib/node_modules/openclaw/node_modules/json5/lib/parse.js:704:15)
at Object.default (/opt/homebrew/lib/node_modules/openclaw/node_modules/json5/lib/parse.js:168:37)
at lex (/opt/homebrew/lib/node_modules/openclaw/node_modules/json5/lib/parse.jsđź’Ż42)
at Object.parse (/opt/homebrew/lib/node_modules/openclaw/node_modules/json5/lib/parse.js:25:17)
at Object.loadConfig (file:///opt/homebrew/lib/node_modules/openclaw/dist/io-B-_iUGdq.js:19046:24)
at readCliBannerTaglineMode (file:///opt/homebrew/lib/node_modules/openclaw/dist/banner-CSXRvqRl.js:13:51)
at resolveTaglineMode (file:///opt/homebrew/lib/node_modules/openclaw/dist/banner-CSXRvqRl.js:291:9)
at formatCliBannerLine (file:///opt/homebrew/lib/node_modules/openclaw/dist/banner-CSXRvqRl.js:300:9) {
lineNumber: 249,
columnNumber: 4
}
🦞 OpenClaw 2026.4.20 (115f05d) — If you're lost, run doctor; if you're brave, run prod; if you're wise, run tests.
Config invalid
File: ~/.openclaw/openclaw.json
Problem:
- <root>: JSON5 parse failed: SyntaxError: JSON5: invalid character ',' at 249:4
Run: openclaw doctor --fix
Gateway aborted: config is invalid.
<root>: JSON5 parse failed: SyntaxError: JSON5: invalid character ',' at 249:4
Nice, this is progress. You’re past the schema errors, now it’s just a JSON5 syntax issue.
invalid character ',' at 249:4 usually means you ended up with a dangling standalone comma after deleting the old block.
Most likely one of these happened:
},
,
"bindings": [
or
]
,
"channels": {
or a double comma like:
},
,
}
Fast fix
In nano, jump straight there:
Ctrl+_- type
249 - Enter
Then look for a line that is basically just a comma, or a place where you now have ,,.
What it should look like
Between top-level sections, you want exactly one comma:
"channels": {
"discord": {
"groupPolicy": "allowlist",
"guilds": {
"1494879742501851257": {}
}
}
},
"bindings": [
...
],
"agents": {
...
}
Not:
"channels": { ... },