#Discord Channel Auto Replies
1 messages · Page 1 of 1 (latest)
Auto-replies do go through a queue, but you should be able to get parallel runs across different Discord channel sessions. The two knobs you mentioned (groupPolicy, requireMention) only affect whether a message is eligible for auto-reply — not concurrency.
How concurrency actually works (important bit)
OpenClaw runs inbound auto-replies through a lane-aware command queue:
- Per-session lane:
session:<sessionKey>→ guarantees only one run per session key at a time. - Global lane (usually
main) → caps overall parallelism viaagents.defaults.maxConcurrent.
Docs: https://docs.openclaw.ai/concepts/queue
So if messages in different channels are “queuing behind the active one”, one of these is happening:
1) They’re actually sharing the same session key
This would force serialization, even if global concurrency is high.
Quick check: in each Discord channel you’re testing, send /status and compare the SessionKey.
For guild channels you should see different keys like:
agent:<agentId>:discord:channel:<channelId>
If the SessionKey is identical across those channels, that’s the smoking gun—everything is being routed into one session.
Discord session model reference: https://docs.openclaw.ai/channels/discord (see “Runtime model”)
2) agents.defaults.maxConcurrent isn’t being applied (wrong path / not loaded / no restart)
Make sure it’s set at exactly:
{
agents: {
defaults: {
maxConcurrent: 4,
},
},
}
Not under agents.defaults.model... (that’s a super common mis-nest).
Then restart the gateway (config reload should apply it too, but restart removes doubt).
If you paste 2 things, I can tell you which case it is
- The
/statusoutput from two different channels (just the lines containing SessionKey + anything about queue/lane if shown) - The snippet of your config around
agents.defaultsandchannels.discord.guilds.<yourGuildId>...
If SessionKeys differ and it still serializes, that’s likely a bug/regression in 2026.2.21-2 and worth a GitHub issue—with those /status outputs included.
i used one of the suggested threads and it had the solution