Skip to content

[Bug]: Slack thread replies can fail when streaming is enabled (missing_recipient_team_id) and no reply is posted #20337

@attembot

Description

@attembot

Summary

When OpenClaw handles Slack thread messages with Slack streaming enabled, it can draft a response but fail to post it to the thread due to missing_recipient_team_id.

Steps to reproduce

Run OpenClaw with Slack Socket Mode enabled (channels.slack.mode=socket) and default streaming behavior (streaming enabled).
In a Slack channel where the bot is active, create/reply in a thread and mention the bot (e.g. @openclaw ...).
Observe in OpenClaw dashboard/logs that the message is received and the agent run completes for a thread session.
Check Slack thread: no assistant reply appears.
Check gateway logs: streaming errors include missing_recipient_team_id.

Expected behavior

OpenClaw posts the assistant reply into the same Slack thread that triggered the run.

Actual behavior

The run completes, but no reply appears in the Slack thread. Logs show Slack streaming errors:

slack-stream: streaming API call failed: ... missing_recipient_team_id, falling back
slack-stream: failed to stop stream: ... missing_recipient_team_id

OpenClaw version

2026.2.17 (also observed on 2026.2.15)

Operating system

Debian GNU/Linux 12 (bookworm), arm64 (Radxa Rock 5T)

Install method

Global npm install (npm i -g openclaw), gateway running as user systemd service (openclaw-gateway.service)

Logs, screenshots, and evidence

Redacted excerpts from openclaw-2026-02-18.log:

... lane enqueue: lane=session:agent:business:slack:channel:c0afe75c6p6:thread:1771443543.136549
... lane dequeue: lane=session:agent:business:slack:channel:c0afe75c6p6:thread:1771443543.136549
... embedded run start ... messageChannel=slack
... slack-stream: streaming API call failed: Error: An API error occurred: missing_recipient_team_id, falling back
... slack-stream: failed to stop stream: Error: An API error occurred: missing_recipient_team_id

For channel-level (non-thread) messages, logs often show:

... delivered reply to channel:C0AFE75C6P6
but for failing thread cases there is no corresponding successful thread-delivery log.

I can provide full sanitized log bundle if needed.

Impact and severity

Affected: Slack-thread workflows using OpenClaw (business agent in Socket Mode)
Severity: High (blocks threaded conversation workflow)
Frequency: Intermittent but recurring on active usage (seen multiple times in same day)
Consequence: Silent missing replies in threads, manual retries, reduced trust in bot reliability

Additional information

Workaround: disabling Slack streaming appears to improve reliability:
openclaw config set channels.slack.streaming false
openclaw gateway restart

This looks specific to Slack thread delivery/stream lifecycle rather than model inference (agent run completes normally).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdedupe:parentPrimary canonical item in dedupe cluster

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions