openclaw - 💡(How to fix) Fix Discord typing indicator is delayed despite typingMode=instant [1 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

After upgrading to OpenClaw 2026.5.22, Discord typing indicators appear noticeably later than before even when agents.defaults.typingMode is configured as "instant".

This is most visible in Discord channel/thread conversations: the inbound message is accepted, but the user does not see typing until after pre-run work such as session handling, memory recall, queue checks, or preflight logic has already run.

Root Cause

For human users, "instant" is interpreted as "the bot is alive and has accepted my message". If typing is delayed until after recall/preflight/queue work, it feels like the bot is unresponsive, especially after update/restart or when memory/session work is slower.

This also makes post-update smoke tests misleading: gateway status and eventual reply can be OK, while the conversation still feels stalled for several seconds.

Fix Action

Fixed

Code Example

{
  "agents": {
    "defaults": {
      "typingMode": "instant"
    }
  }
}
RAW_BUFFERClick to expand / collapse

Summary

After upgrading to OpenClaw 2026.5.22, Discord typing indicators appear noticeably later than before even when agents.defaults.typingMode is configured as "instant".

This is most visible in Discord channel/thread conversations: the inbound message is accepted, but the user does not see typing until after pre-run work such as session handling, memory recall, queue checks, or preflight logic has already run.

Environment

  • OpenClaw: 2026.5.22
  • Gateway: LaunchAgent on macOS
  • Channel: Discord
  • Conversation shape: Discord channel / thread-topic style conversation
  • Config:
{
  "agents": {
    "defaults": {
      "typingMode": "instant"
    }
  }
}

Expected behavior

For typingMode: "instant", Discord should emit a typing indicator as soon as the inbound message is accepted for handling / queued for a run.

In other words, the UX expectation is:

  1. Discord message received
  2. OpenClaw accepts it as an actionable turn
  3. Discord typing indicator is sent immediately
  4. Session/memory/queue/preflight/model work proceeds
  5. Keepalive continues while the run is active

Actual behavior

The typing indicator appears to start later, after the agent reply runner has progressed to run-start logic.

On a real 2026.5.22 gateway with typingMode: "instant", logs showed pre-run work adding visible delay before the user saw typing, including memory recall and occasional event-loop delay. Example timing observed:

  • memory-tdai recall: ~0.6s to ~2.8s on some turns
  • prior post-update recovery window also showed event_loop_delay and queued active runs

The important point is not memory specifically; any pre-run work before signalRunStart() makes "instant" feel non-instant from the Discord user's perspective.

Source-level observation

In the packaged 2026.5.22 dist, typingMode: "instant" resolves to immediate typing behavior, but the trigger appears tied to reply-run start rather than Discord inbound acceptance.

Relevant packaged files observed locally:

  • dist/typing-mode-*.js
    • resolveTypingMode(...)
    • createTypingSignaler(...)
    • signalRunStart() calls typing.startTypingLoop() for mode === "instant"
  • dist/agent-runner.runtime-*.js
    • typingSignals.signalRunStart() is called after active-run queue handling and just before preflight compaction / memory flush / model-run work
  • Telegram has an early typing cue path, but Discord appears to rely on the later run-start path.

Why this matters

For human users, "instant" is interpreted as "the bot is alive and has accepted my message". If typing is delayed until after recall/preflight/queue work, it feels like the bot is unresponsive, especially after update/restart or when memory/session work is slower.

This also makes post-update smoke tests misleading: gateway status and eventual reply can be OK, while the conversation still feels stalled for several seconds.

Suggested fix

Add an early Discord typing cue at inbound acceptance / queue admission time, similar in spirit to Telegram's early typing cue.

Suggested behavior:

  • If the message is actionable and not suppressed by policy, emit one Discord typing indicator immediately.
  • Continue using the existing run-start typing loop as keepalive once the reply runner starts.
  • Preserve existing suppressions for heartbeat/system/internal/silent paths.
  • Ensure thread/topic Discord targets use the correct conversation target when sending the early typing indicator.

Notes

This is not a config issue: agents.defaults.typingMode was already set to "instant" and the schema accepts never | instant | thinking | message.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

For typingMode: "instant", Discord should emit a typing indicator as soon as the inbound message is accepted for handling / queued for a run.

In other words, the UX expectation is:

  1. Discord message received
  2. OpenClaw accepts it as an actionable turn
  3. Discord typing indicator is sent immediately
  4. Session/memory/queue/preflight/model work proceeds
  5. Keepalive continues while the run is active

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix Discord typing indicator is delayed despite typingMode=instant [1 pull requests]