Environment
OpenClaw 2026.2.13 (regression; 2026.2.12 OK)
Windows 11 10.0.26200 x64
Node 24.13.0
Gateway local ws://127.0.0.1:18789
Config: ~.openclaw\openclaw.json
Sessions store: ~.openclaw\agents\main\sessions\sessions.json
Config
channels.discord = { enabled: true, groupPolicy: "open", guilds: { "1471061022734418013": { requireMention: false }, "1471048162872528896": { requireMention: false } } }
session = defaults (not set)
Expected
Guild channel messages route to session keys like: agent:main:discord:channel:
Actual
All guild channel messages enqueue + run under the main session: lane=session:agent:main:main (sessionId d1d349e5-...), regardless of channel.
Evidence (logging.level=debug + diagnostics.enabled=true)
lane enqueue: lane=session:agent:main:main
lane dequeue: lane=session:agent:main:main
embedded run start: sessionId=d1d349e5-1817-44d3-8960-32db37ad1411 messageChannel=discord
session state: sessionId=d1d349e5-1817-44d3-8960-32db37ad1411 sessionKey=unknown prev=idle new=processing
Session store sanity
sessions.json contains valid per-channel session keys (e.g. agent:main:discord:channel:1471178821519675493) with their own sessionIds
d1d349e5-... maps to agent:main:main (chatType direct)
Gateway never routes to the per-channel session keys
Probes
openclaw channels status --probe: Discord "works"
openclaw channels capabilities --channel discord --target 1471178821519675493: Support: chatTypes=direct,channel,thread ... Missing required: none
Notes
No Discord inbound classification logs are emitted (no discord: inbound ... / discord inbound: ... from=... deliver=...), despite debug logging. Logs jump from guild resolution to embedded run start in main session.
Regression
Works on 2026.2.12, breaks on 2026.2.13 with same config.
Workaround
npm i -g [email protected]
openclaw gateway restart
Environment
OpenClaw 2026.2.13 (regression; 2026.2.12 OK)
Windows 11 10.0.26200 x64
Node 24.13.0
Gateway local ws://127.0.0.1:18789
Config: ~.openclaw\openclaw.json
Sessions store: ~.openclaw\agents\main\sessions\sessions.json
Config
channels.discord = { enabled: true, groupPolicy: "open", guilds: { "1471061022734418013": { requireMention: false }, "1471048162872528896": { requireMention: false } } }
session = defaults (not set)
Expected
Guild channel messages route to session keys like: agent:main:discord:channel:
Actual
All guild channel messages enqueue + run under the main session: lane=session:agent:main:main (sessionId d1d349e5-...), regardless of channel.
Evidence (logging.level=debug + diagnostics.enabled=true)
lane enqueue: lane=session:agent:main:main
lane dequeue: lane=session:agent:main:main
embedded run start: sessionId=d1d349e5-1817-44d3-8960-32db37ad1411 messageChannel=discord
session state: sessionId=d1d349e5-1817-44d3-8960-32db37ad1411 sessionKey=unknown prev=idle new=processing
Session store sanity
sessions.json contains valid per-channel session keys (e.g. agent:main:discord:channel:1471178821519675493) with their own sessionIds
d1d349e5-... maps to agent:main:main (chatType direct)
Gateway never routes to the per-channel session keys
Probes
openclaw channels status --probe: Discord "works"
openclaw channels capabilities --channel discord --target 1471178821519675493: Support: chatTypes=direct,channel,thread ... Missing required: none
Notes
No Discord inbound classification logs are emitted (no discord: inbound ... / discord inbound: ... from=... deliver=...), despite debug logging. Logs jump from guild resolution to embedded run start in main session.
Regression
Works on 2026.2.12, breaks on 2026.2.13 with same config.
Workaround
npm i -g [email protected]
openclaw gateway restart