openclaw - 💡(How to fix) Fix Slack interactive reply button clicks not routed to originating thread session [1 comments, 1 participants]

Official PRs (…)
ON THIS PAGE

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…
GitHub stats
openclaw/openclaw#60091Fetched 2026-04-08 02:36:28
View on GitHub
Comments
1
Participants
1
Timeline
3
Reactions
0
Author
Participants
Timeline (top)
closed ×1commented ×1locked ×1

Root Cause

In interactions.block-actions.ts, the session key is resolved via resolveSlackSystemEventSessionKey. The issue appears to be that the resolved session key for the interaction does not match the active thread-bound session that originally sent the interactive message.

Fix Action

Workaround

Currently, agents can still use interactive buttons for visual presentation, but cannot programmatically react to button clicks. Users must type their selection as a follow-up text message instead.

Code Example

message(action=send, channel=slack, target=channel:XXXXX, message="Pick one", interactive={blocks: [{type: "buttons", buttons: [{label: "A", value: "a"}, {label: "B", value: "b"}]}]}, replyTo=threadTs)

---

[slack] interaction action=openclaw:reply_button:1:1 type=button user=UXXXX channel=CXXXX
RAW_BUFFERClick to expand / collapse

Bug Description

When an agent sends a Slack message with interactive buttons (via message tool with interactive parameter), the button click events are received by the gateway and enqueued as system events, but they are not delivered to the agent session that sent the original message.

Steps to Reproduce

  1. Agent sends a message with interactive buttons to a Slack thread:
    message(action=send, channel=slack, target=channel:XXXXX, message="Pick one", interactive={blocks: [{type: "buttons", buttons: [{label: "A", value: "a"}, {label: "B", value: "b"}]}]}, replyTo=threadTs)
  2. User clicks a button in Slack
  3. Gateway logs show the interaction is received:
    [slack] interaction action=openclaw:reply_button:1:1 type=button user=UXXXX channel=CXXXX
  4. enqueueSlackBlockActionEvent is called, and enqueueSystemEvent queues the event
  5. But the agent session never receives the button click — no system event is prepended to the next prompt

Expected Behavior

The button click should be delivered to the originating agent session as a system event, containing:

  • Which button was clicked (value)
  • Who clicked it (user ID)
  • The original message context (thread_ts, message_ts)

Analysis

In interactions.block-actions.ts, the session key is resolved via resolveSlackSystemEventSessionKey. The issue appears to be that the resolved session key for the interaction does not match the active thread-bound session that originally sent the interactive message.

Environment

  • OpenClaw version: 2026.3.28 (commit f9b1079)
  • Channel: Slack (Socket Mode)
  • Config: channels.slack.capabilities.interactiveReplies: true

Workaround

Currently, agents can still use interactive buttons for visual presentation, but cannot programmatically react to button clicks. Users must type their selection as a follow-up text message instead.

extent analysis

TL;DR

The issue can be resolved by ensuring the session key for the interaction matches the active thread-bound session that originally sent the interactive message.

Guidance

  • Review the resolveSlackSystemEventSessionKey function in interactions.block-actions.ts to understand how the session key is resolved for interactions.
  • Verify that the threadTs and messageTs are correctly passed and used to resolve the session key.
  • Check the session key resolution logic to ensure it correctly identifies the active thread-bound session.
  • Consider adding logging or debugging statements to track the session key resolution process and identify any discrepancies.

Example

No code snippet is provided as the issue does not explicitly state the code changes required.

Notes

The root cause of the issue appears to be related to the session key resolution, but the exact fix may depend on the implementation details of resolveSlackSystemEventSessionKey. Further investigation and debugging are necessary to determine the correct solution.

Recommendation

Apply workaround: Currently, the only available workaround is for agents to use interactive buttons for visual presentation and have users type their selection as a follow-up text message instead. This allows agents to still utilize interactive buttons while the issue is being resolved.

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…

Still need to ship something?

×6

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

Back to top recommendations

TRENDING