Skip to content

assistant_thread_started not fired when user clicks "+" to open a new thread from history in an already-open assistant container #2802

@anton-chernov-nrich

Description

@anton-chernov-nrich

Summary

When a user opens a new assistant thread for the first time, assistant_thread_started fires correctly. However, if the user already has an existing conversation, opens the history panel, and clicks "+" to create a new thread, no event fires at all — not assistant_thread_started, not assistant_thread_context_changed, nothing. The thread shows "Waiting for [Bot] to start a conversation…" permanently and the user cannot type.

Steps to Reproduce

  1. User opens the assistant DM → assistant_thread_started fires, bot sends greeting ✓
  2. User sends a message → bot responds ✓
  3. User clicks the history (clock) icon at the top of the assistant panel
  4. User clicks "+" to start a new thread
  5. Thread shows "Waiting for [Bot] to start a conversation…" and input is blocked permanently

No event ever fires. Verified with a catch-all raw event listener (app.event(/.*/, ...)) — zero events of any type are received when "+" is clicked.

Evidence

// First thread — works correctly:
[slack] threadStarted: fired {"type":"assistant_thread_started","assistant_thread":{"thread_ts":"1772128275.802869",...}}
[slack] threadStarted: say() done
[slack] threadContextChanged: fired {"type":"assistant_thread_context_changed","assistant_thread":{"thread_ts":"1772128275.802869",...}}
[slack] user=Anton duration=10636ms status=ok

// User clicks "+" for a second new thread — complete silence:
// [nothing received — no events of any type]

Impact

The thread is permanently stuck. Slack's UI blocks user input until the bot sends the first message, but since no event fires, the bot has no way to know a new thread was created. The user cannot recover without closing and reopening the assistant panel.

Reproducible in both Slack desktop app and Slack web browser.

Environment

  • @slack/bolt: 4.6.0 (latest)
  • Node.js: v22.22.0
  • Socket Mode: yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugM-T: confirmed bug report. Issues are confirmed when the reproduction steps are documentedserver-side-issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions