#discord isnt working

1 messages · Page 1 of 1 (latest)

ionic tree
#

Im trying to write in discord using xgrok but nothing is working and im getting errors in my console

maiden lilyBOT
#

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

digital houndBOT
#

First thing: can you paste your openclaw --version and the actual console error text? That’ll tell us whether this is a Discord config issue, token/intent issue, or something with the tunnel.

Quick sanity checks while you grab that:

  • For OpenClaw’s Discord channel you usually do not need ngrok/xgrok; Discord uses the official Gateway connection, not an inbound webhook tunnel.
  • Make sure you’re using a Discord bot token from the Developer Portal, not a user token.
  • In the Discord Developer Portal → Bot, enable Message Content Intent. Server Members Intent is recommended too.
  • Bot invite needs at least: View Channels, Send Messages, Read Message History. If using threads: Send Messages in Threads.
  • Don’t paste your bot token here — only errors with secrets redacted.

Docs: https://docs.openclaw.ai/channels/discord and troubleshooting: https://docs.openclaw.ai/gateway/troubleshooting

ionic tree
#

[diagnostic] liveness warning: reasons=event_loop_delay interval=34s eventLoopDelayP99Ms=59.7 eventLoopDelayMaxMs=19025.4 eventLoopUtilization=0.598 cpuCoreRatio=0.606 active=1 waiting=0 queued=1 phase=channels.discord.start-account recentPhases=sidecars.subagent-recovery:2ms,sidecars.main-session-recovery:5ms,post-attach.update-sentinel:0ms,sidecars.model-prewarm:8884ms,sidecars.session-locks:7010ms,post-ready.maintenance:268ms work=[active=agent:main:discord:channel:1478716470774071336(processing,q=1,age=19s) queued=agent:main:discord:channel:1478716470774071336(processing,q=1,age=19s)]
03:01:22 [skills] failed to create plugin skill symlink "C:\Users\sonic.openclaw\plugin-skills\browser-automation" → "C:\Users\sonic\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\browser\skills\browser-automation": Error: EPERM: operation not permitted, symlink 'C:\Users\sonic\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\browser\skills\browser-automation' -> 'C:\Users\sonic.openclaw\plugin-skills\browser-automation'
03:01:22 [skills] failed to create plugin skill symlink "C:\Users\sonic.openclaw\plugin-skills\browser-automation" → "C:\Users\sonic\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\browser\skills\browser-automation": Error: EPERM: operation not permitted, symlink 'C:\Users\sonic\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\browser\skills\browser-automation' -> 'C:\Users\sonic.openclaw\plugin-skills\browser-automation'
03:01:34 [agent/embedded] [trace:embedded-run] startup stages: runId=19986ddf-1f12-4937-ac16-f07270c1b7e9 sessionId=5018c906-bbb9-4854-b726-88b721c68dc2 phase=attempt-dispatch totalMs=5097 stages=workspace:5ms@5ms,runtime-plugins:14ms@19ms,hooks:0ms@19ms,model-resolution:5031ms@5050ms,auth:19ms@5069ms,context-engine:3ms@5072ms,attempt-dispatch:25ms@5097ms

digital houndBOT
#

That log points to two separate things:

  1. The real error shown is Windows blocking symlink creation:
    EPERM: operation not permitted, symlink ... plugin-skills/browser-automation

That’s usually fixed by one of these:

  • Enable Windows Developer Mode: Settings → System → For developers → Developer Mode, then restart OpenClaw.
  • Or run the terminal/OpenClaw gateway once as Administrator.
  • Or delete C:\Users\sonic\.openclaw\plugin-skills\browser-automation if it’s a broken leftover, then restart.
  1. The liveness warning is mostly saying startup was busy / event loop stalled for a bit. It’s useful diagnostic noise, but not the Discord permissions error by itself.

Also: if by “xgrok” you mean ngrok/tunnel, Discord channel support shouldn’t need that. OpenClaw connects to Discord’s gateway directly.

Please run/paste:

#
openclaw --version
openclaw status --all

Redact tokens/secrets. That’ll show whether Discord is failing after the symlink issue, or if the bot token/intents/config are the next problem.

ionic tree
#

Version | 2026.5.7 |
| OS | windows 10.0.26200 (x64) |
| Node | 24.13.0 |
| Config | ~.openclaw\openclaw.json |
| Dashboard | http://127.0.0.1:18789/ |
| Tailscale exposure | off |
| Channel | stable (default) |
| Update | pnpm · up to date · npm latest 2026.5.7 |
| Gateway | local · ws://127.0.0.1:18789 (local loopback) · unreachable (connect ECONNREFUSED 127.0.0. |
| | 1:18789) |
| Security | Run: openclaw security audit --deep |
| Gateway self | unknown |
| Gateway service | Scheduled Task installed · registered · unknown (state Ready, Task status is locale-dependent |
| | and no numeric Last Run Result was available.) |
| Node service | Scheduled Task not installed |
| Agents | 2 total · 0 bootstrapping · 1 active · 10 sessions |
| Secrets | none

#

Channel | Enabled | State | Detail |
+----------+---------+--------+----------------------------------------------------------------------------------------+
| Discord | ON | OK | token config (sha256:fe4d0352 · len 72) · accounts 1/1

#

Account | Status | Notes |
+----------+----------+------------------------------------------------------------------------------------------------+
| default | OK | token:config

#

Agent | Bootstrap file | Sessions | Active | Store |
+------------+----------------+----------+----------+------------------------------------------------------------------+
| main | ABSENT | 8 | 3m ago | ~.openclaw\agents\main\sessions\sessions.json |
| grok | ABSENT | 2 | 66d ago | ~.openclaw\agents\grok\sessions\sessions.json

digital houndBOT
#

Good, that narrows it down: Discord isn’t the first failure — your Gateway is not running/reachable:

Gateway ... unreachable (connect ECONNREFUSED 127.0.0.1:18789)

So OpenClaw can’t write to Discord because there’s no local gateway listening.

On Windows native, try this in PowerShell:

openclaw gateway status --json
openclaw gateway restart
openclaw status --all

If restart still leaves it unreachable, run:

openclaw logs --follow
#

and paste the first actual crash/error after startup.

Given your earlier EPERM ... symlink error, I’d also enable Windows Developer Mode and restart OpenClaw:
Settings → System → For developers → Developer Mode.
That lets non-admin processes create symlinks, which OpenClaw is trying to do for plugin skills.

One more important bit: native Windows works, but the docs still recommend WSL2 as the smoother path for gateway/tooling. If you want the least pain, WSL2 is the better install route.

Docs: https://docs.openclaw.ai/platforms/windows and https://docs.openclaw.ai/gateway

ionic tree
#

Gateway connection details:
Gateway target: ws://127.0.0.1:18789
Source: local loopback
Config: C:\Users\sonic.openclaw\openclaw.json
Bind: loopback

âś“ Config: C:\Users\sonic.openclaw\openclaw.json
âś“ Secret diagnostics (0)
âś“ Restart sentinel: none
âś“ Port 18789
! Tailscale exposure: off · daemon unknown
✓ Skills: 8 eligible · 0 missing · C:\Users\sonic.openclaw\workspace
âś“ Plugin compatibility (none)

Gateway restart attempts (tail): C:\Users\sonic.openclaw\logs\gateway-restart.log
[2026-04-29T22:48:53.0755601-04:00] openclaw restart log initialized
[2026-04-29T22:48:53.0755601-04:00] openclaw restart attempt source=update target=OpenClaw Gateway
[2026-04-29T22:48:54.2810192-04:00] SUCCESS: The scheduled task "OpenClaw Gateway" has been terminated successfully.
[2026-04-29T22:48:54.8153201-04:00] SUCCESS: Attempted to run the scheduled task "OpenClaw Gateway".
[2026-04-29T22:48:54.8174244-04:00] openclaw restart done source=update
… 4 lines omitted …
[2026-04-29T22:57:16.2607120-04:00] openclaw restart done source=update
[Thu 04/30/2026 3:37:21.58] openclaw restart log initialized
[Thu 04/30/2026 3:37:21.59] openclaw restart attempt source=windows-task-handoff target="OpenClaw Gateway"
[Thu 04/30/2026 3:37:23.39] openclaw restart finished source=windows-task-handoff
[2026-05-12T02:55:52.9445090-04:00] openclaw restart log initialized
[2026-05-12T02:55:52.9525220-04:00] openclaw restart attempt source=update target=OpenClaw Gateway
[2026-05-12T02:55:54.4488830-04:00] openclaw restart skipped schtasks end source=update state=Ready
[2026-05-12T02:56:05.1525145-04:00] openclaw restart killed stale listener source=update pid=42376
[2026-05-12T02:56:05.2674513-04:00] SUCCESS: Attempted to run the scheduled task "OpenClaw Gateway".
[2026-05-12T02:56:05.2708321-04:00] openclaw restart done source=update
! Channel issues skipped (gateway unreachable)

Gateway health:
connect ECONNREFUSED 127.0.0.1:18789

digital houndBOT
#

Nice — that means the Discord token/config is being recognized now. 🦞

Next split:

If openclaw status --all now shows the Gateway reachable, Discord startup is OK and the remaining issue is probably one of:

  • bot not invited with Send Messages / Read Message History permissions
  • missing Message Content Intent in Discord Developer Portal
  • not paired/allowed for the DM/server/channel you’re trying to use
  • trying to send in a thread without Send Messages in Threads

If Gateway still says ECONNREFUSED, then Discord being OK just means config validation passed — the gateway process still isn’t actually up.

Can you paste the Gateway line from the latest openclaw status --all, plus what happens when you DM the bot or type in the target Discord channel? Don’t paste the token.

#

Yep, that confirms the Discord account/token itself is OK.

The next thing I need is the Gateway status line, because earlier it was the blocker:
unreachable (connect ECONNREFUSED 127.0.0.1:18789)

Please paste just this part from:

openclaw status --all

Specifically the lines for:

  • Gateway
  • Gateway service
  • any red/error lines under Discord

If Gateway is reachable now, we move to Discord-side checks: bot invite permissions, Message Content Intent, pairing/allowlist, and whether you’re sending in a normal channel vs thread.

#

That part only tells us the agents/sessions exist — it doesn’t show whether the gateway is actually reachable.

Earlier your status had:
Gateway ... unreachable (connect ECONNREFUSED 127.0.0.1:18789)

That’s the line we need to confirm/fix. Run this and paste the output:

openclaw gateway status

If it says stopped/unreachable, run:

openclaw gateway restart
openclaw gateway status

If restart fails, paste the error from:

#
openclaw logs --follow

Also: since you have a grok agent but it was active 66 days ago, if “xgrok” means you’re trying to route Discord to a Grok-backed agent, the config may still be pointing Discord at main or the Grok agent may not be active. First get the gateway reachable; then we can check routing.

#

That’s the smoking gun: the scheduled task is being “started”, but nothing is listening on 127.0.0.1:18789. So Discord config is OK; the Gateway process is crashing or failing before bind.

Fastest way to catch the real error is to run it in the foreground instead of through the Scheduled Task:

openclaw gateway run

Leave that window open and paste the first crash/error it prints.

If it immediately complains about the port/stale listener, do:

openclaw gateway stop
openclaw gateway run

Given the earlier Windows symlink EPERM, also do this before retrying:

  1. Enable Developer Mode in Windows Settings → System → For developers
  2. Close/reopen PowerShell
#
  1. Run:
openclaw doctor
openclaw gateway run

If foreground works, then the issue is specifically the Scheduled Task install. Repair it with:

openclaw gateway install --force
openclaw gateway restart
openclaw status --all

Don’t worry about Discord until Gateway health stops saying ECONNREFUSED — channel probes are skipped while the gateway is down.

ionic tree
#

ateway connection details:
Gateway target: ws://127.0.0.1:18789
Source: local loopback
Config: C:\Users\sonic.openclaw\openclaw.json
Bind: loopback

âś“ Config: C:\Users\sonic.openclaw\openclaw.json
âś“ Secret diagnostics (0)
âś“ Restart sentinel: none
! Port 18789
Port 18789 is already in use.

  • pid 49428: node.exe (127.0.0.1:18789)
  • Another process is listening on this port.
    ! Tailscale exposure: off · daemon unknown
    ✓ Skills: 8 eligible · 0 missing · C:\Users\sonic.openclaw\workspace
    âś“ Plugin compatibility (none)

Gateway restart attempts (tail): C:\Users\sonic.openclaw\logs\gateway-restart.log
[2026-04-29T22:48:53.0755601-04:00] openclaw restart log initialized
[2026-04-29T22:48:53.0755601-04:00] openclaw restart attempt source=update target=OpenClaw Gateway
[2026-04-29T22:48:54.2810192-04:00] SUCCESS: The scheduled task "OpenClaw Gateway" has been terminated successfully.
[2026-04-29T22:48:54.8153201-04:00] SUCCESS: Attempted to run the scheduled task "OpenClaw Gateway".
[2026-04-29T22:48:54.8174244-04:00] openclaw restart done source=update
… 4 lines omitted …
[2026-04-29T22:57:16.2607120-04:00] openclaw restart done source=update
[Thu 04/30/2026 3:37:21.58] openclaw restart log initialized
[Thu 04/30/2026 3:37:21.59] openclaw restart attempt source=windows-task-handoff target="OpenClaw Gateway"
[Thu 04/30/2026 3:37:23.39] openclaw restart finished source=windows-task-handoff
[2026-05-12T02:55:52.9445090-04:00] openclaw restart log initialized
[2026-05-12T02:55:52.9525220-04:00] openclaw restart attempt source=update target=OpenClaw Gateway
[2026-05-12T02:55:54.4488830-04:00] openclaw restart skipped schtasks end source=update state=Ready
[2026-05-12T02:56:05.1525145-04:00] openclaw restart killed stale listener source=update pid=42376
[2026-05-12T02:56:05.2674513-04:00] SUCCESS: Attempted to run the scheduled task "OpenClaw Gateway".
[2026-05-12T02:56:05.2708321-04:00] openclaw restart done source=update

digital houndBOT
#

Progress: now something is listening on 18789:

pid 49428: node.exe (127.0.0.1:18789)

So we need to tell whether that node.exe is the real OpenClaw gateway or a stale/wedged Node process.

Run these:

openclaw health --verbose
openclaw status --all

If health works, the gateway is up and we can go back to Discord permissions/pairing.

If health still fails, inspect the process:

#
Get-CimInstance Win32_Process -Filter "ProcessId=49428" | Select-Object ProcessId,CommandLine

If the command line is OpenClaw, try a clean restart:

openclaw gateway restart
openclaw health --verbose

If it’s stale and restart doesn’t clear it, close any old OpenClaw/Node terminal windows, or as a last resort kill just that PID:

Stop-Process -Id 49428
openclaw gateway restart
openclaw health --verbose
#

Don’t kill random node.exe processes without checking the command line first — could be another app. Claws out, carefully. 🦞

ionic tree
#

Health works fine

digital houndBOT
#

Great — gateway is alive now. 🎉

Now we’re in Discord-specific territory. Since Channel: Discord ON/OK and health works, check these in order:

  1. In Discord Developer Portal → your app → Bot:
  • Message Content Intent = ON
  • Server Members Intent = ON/recommended
  1. Re-invite the bot with permissions:
  • View Channels
  • Send Messages
  • Read Message History
  • Add Reactions optional
  • Send Messages in Threads if you’re using this forum/thread
  • applications.commands
  1. If you’re trying to talk in this thread/forum, make sure the bot can see this exact channel/thread. Try a normal text channel or DM first.
#
  1. Run:
openclaw status --deep

and paste any Discord-specific failure lines.

If the bot receives messages but doesn’t answer, also check whether Discord is routed to the right agent. You have main active and grok inactive for 66d, so if you expected the Grok agent to answer, routing may be pointing somewhere else.

ionic tree
#

03:12:44 [fetch-timeout] fetch timeout after 10000ms (elapsed 233281ms) timer delayed 223281ms, likely event-loop starvation operation=fetchWithTimeout url=https://discord.com/api/v10/users/@me
03:12:46 [ws] closed before connect conn=cc34929a-949d-4c57-ae72-53177a577257 peer=127.0.0.1:53114->127.0.0.1:18789 remote=127.0.0.1 fwd=n/a origin=n/a host=127.0.0.1:18789 ua=n/a code=1006 reason=n/a
03:12:46 [ws] closed before connect conn=72614db7-2b6b-48e8-a0d0-fe91744f9adf peer=127.0.0.1:53077->127.0.0.1:18789 remote=127.0.0.1 fwd=n/a origin=n/a host=127.0.0.1:18789 ua=n/a code=1006 reason=n/a
03:12:46 [ws] closed before connect conn=90d8233f-6bf2-4fe5-9828-2e4c307dfbb5 peer=127.0.0.1:53074->127.0.0.1:18789 remote=127.0.0.1 fwd=n/a origin=n/a host=127.0.0.1:18789 ua=n/a code=1006 reason=n/a
03:12:46 [ws] closed before connect conn=309654a1-0eb8-49e9-ab71-10b63f361082 peer=127.0.0.1:62957->127.0.0.1:18789 remote=127.0.0.1 fwd=n/a origin=n/a host=127.0.0.1:18789 ua=n/a code=1006 reason=n/a
03:12:46 [discord] gateway: Gateway websocket closed: 1006
03:13:24 [plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: discord (C:\Users\sonic.openclaw\npm\node_modules@openclaw\discord\dist\index.js). Set plugins.allow to explicit trusted ids.

digital houndBOT
#

This log is not a normal Discord permission failure. The key part is:

timer delayed 223281ms, likely event-loop starvation

That means the OpenClaw Gateway’s Node process was blocked for ~3.7 minutes, so even a 10s Discord /users/@me check couldn’t fire on time. The 1006 websocket closes are likely fallout from the gateway being wedged, not the root cause.

What I’d do next:

openclaw gateway restart
openclaw status --deep

Then, if it happens again, capture what the gateway is busy doing:

openclaw logs --follow
#

A few notes:

  • The plugins.allow is empty line is a security warning, not the crash. You can fix it later by explicitly allowing trusted plugins, but it’s not why Discord timed out.
  • Your earlier Windows EPERM symlink error is still suspicious. Enable Windows Developer Mode, then restart gateway.
  • Native Windows is currently more fragile for gateway/tooling; if this keeps starving the event loop, WSL2 is the recommended path: https://docs.openclaw.ai/platforms/windows

If status --deep shows Discord still timing out after a clean restart, paste the Discord section plus the 20-30 log lines before the timeout. That’ll tell us whether it’s Discord network access, a stuck agent run, or Windows-native gateway trouble.

ionic tree
#

dire │ 27d ago │ grok-4-1-fast- │ OpenClaw Pi │ 68k/2000k (3%) · 🗄️ 89% cached │
│ nt: │ ct │ │ reasoning │ Default │

digital houndBOT
#

That looks like a fragment of an agent/session table, not an error. It shows a grok-4-1-fast-... session from 27d ago with cached context — it doesn’t explain the Discord timeout by itself.

The useful next evidence is still one of these:

openclaw status --deep

or the log lines around the next failure after a fresh restart:

openclaw gateway restart
openclaw logs --follow

If your goal is “make Discord use the Grok agent,” say that explicitly — then we should check Discord routing/config. If your goal is “why is Discord timing out,” the event-loop starvation log is the blocker to chase.

ionic tree
#

Security audit
Summary: 3 critical · 3 warn · 2 info
CRITICAL Open groupPolicy with elevated tools enabled
Found groupPolicy="open" at: - channels.discord.groupPolicy With tools.elevated enabled, a prompt injection in those rooms can become a high-impact incident.
Fix: Set groupPolicy="allowlist" and keep elevated allowlists extremely tight.
CRITICAL Open groupPolicy with runtime/filesystem tools exposed
Found groupPolicy="open" at: - channels.discord.groupPolicy Risky tool exposure contexts: - agents.defaults (sandbox=off; runtime=[exec, process]; fs=[read, wr…
Fix: For open groups, prefer tools.profile="messaging" (or deny group:runtime/group:fs), set tools.fs.workspaceOnly=true, and use agents.defaults.sandbox.mode="all" for exposed agents.
CRITICAL Discord security warning
Discord guilds: groupPolicy="open" with no guild/channel allowlist; any channel can trigger (mention-gated). Set channels.discord.groupPolicy="allowlist" and c…
WARN Reverse proxy headers are not trusted
gateway.bind is loopback and gateway.trustedProxies is empty. If you expose the Control UI through a reverse proxy, configure trusted proxies so local-client c…
Fix: Set gateway.trustedProxies to your proxy IPs or keep the Control UI local-only.
WARN Potential multi-user setup detected (personal-assistant model warning)
Heuristic signals indicate this gateway may be reachable by multiple users: - channels.discord.groupPolicy="open" Runtime/process tools are exposed without ful…
Fix: If users may be mutually untrusted, split trust boundaries (separate gateways + credentials, ideally separate OS users/hosts). If you intentionally run shared-user access, set agents.defaults.sandbox.mode="all", keep tools.fs.workspaceOnly=true, deny runtime/fs/web tools unless required, and keep personal/private identities + credentials off that runtime.
WARN Plugin index includes unpinned npm spec
Unpinned plugin index install records: - discord (@openclaw/discord)

digital houndBOT
#

That audit output is important, but it’s security hardening, not the reason Discord timed out.

Right now your Discord guild is configured as groupPolicy="open" while powerful tools are exposed (exec/process, filesystem, elevated). That means anyone who can trigger the bot in an allowed Discord room may be able to influence an agent with real system/file tools. I would fix that before continuing.

Recommended safer Discord config shape:

{
  channels: {
    discord: {
      groupPolicy: "allowlist",
      guilds: {
        YOUR_SERVER_ID: {
          requireMention: true,
          users: ["YOUR_DISCORD_USER_ID"],
        },
      },
#
    },
  },
  tools: {
    profile: "messaging",
    fs: { workspaceOnly: true },
  },
  agents: {
    defaults: {
      sandbox: { mode: "all" },
    },
  },
  plugins: {
    allow: ["discord"],
  },
}
#

If this is just your private server and you want coding tools, still don’t leave groupPolicy: "open" on a public/shared Discord server. Use an allowlist for your server/user/channel, then add tools back deliberately.

Docs:
https://docs.openclaw.ai/channels/discord
https://docs.openclaw.ai/gateway/security
https://docs.openclaw.ai/gateway/config-tools

After changing config, restart:

openclaw gateway restart
openclaw security audit --deep
openclaw status --deep

For the original “Discord not writing” issue: the last real runtime error was still event-loop starvation / Discord API timeout. Once the gateway is stable and security is locked down, openclaw status --deep should show whether Discord itself is healthy.

ionic tree
#

OS │ windows 10.0.26200 (x64) · node 24.13.0 │
│ Dashboard │ http://127.0.0.1:18789/ │
│ Tailscale exposure │ off │
│ Channel │ stable (default) │
│ Update │ pnpm · up to date · npm latest 2026.5.7 │
│ Gateway │ local · ws://127.0.0.1:18789 (local loopback) · reachable 247ms · │
│ │ auth token · TJR (192.168.137.1) app 2026.5.7 windows 10.0.26200 │
│ Gateway self │ TJR (192.168.137.1) app 2026.5.7 windows 10.0.26200 │
│ Gateway service │ Scheduled Task installed · registered · unknown (state Ready, Task │
│ │ status is locale-dependent and no numeric Last Run Result was │
│ │ available.) │
│ Node service │ Scheduled Task not installed │
│ Agents │ 2 · no bootstrap files · sessions 10 · default main active 1m ago │
│ Memory │ enabled (plugin memory-core) · not checked │
│ Plugin compatibility │ none │
│ Probes │ enabled │
│ Events │ none │
│ Tasks │ none │
│ Heartbeat │ 30m (main), disabled (grok) │
│ Last heartbeat │ none │
│ Sessions │ 10 active · default grok-4-1-fast (200k ctx) · 2 stores

digital houndBOT
#

Great — gateway is reachable now, so we’re past the ECONNREFUSED problem.

At this point the most likely reason “it isn’t writing” is Discord guild behavior:

  • In Discord channels/forums, OpenClaw’s normal final answer can be private by default.
  • For visible channel output, the agent usually needs to call the message tool.
  • If your model answers internally but doesn’t call the tool, you’ll see typing / token usage but no posted Discord message.

Two fixes:

  1. Best quick test: DM the bot directly. If DM works, the Discord token/gateway are fine and this is channel/guild routing/visibility.

  2. For guild channels, either use a strong tool-calling model, or restore legacy visible replies:

{
  messages: {
#
    groupChat: {
      visibleReplies: "automatic",
    },
  },
}

Also make sure your Discord guild config has your server/user allowlisted, e.g.:

{
  channels: {
    discord: {
      groupPolicy: "allowlist",
      guilds: {
        YOUR_SERVER_ID: {