#Discord Channel Auto Replies

1 messages · Page 1 of 1 (latest)

jade lodge
#

Messages in different guild channels aren't triggering parallel auto-replies. They queue behind whatever channel session is active. groupPolicy is open, maxConcurrent is 4, requireMention is false. Version 2026.2.21-2. How do I get true parallel channel sessions?

proven jackalBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

fast lichenBOT
#

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 via agents.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

  1. The /status output from two different channels (just the lines containing SessionKey + anything about queue/lane if shown)
  2. The snippet of your config around agents.defaults and channels.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.

jade lodge