Skip to content

[Bug]: Replies can fail with native Slack streaming enabled (user_not_found during stream finalize) when replying to in channel message from Slack Connect user #70295

Description

@henrikln

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

Replies in Slack threads appear to fail for Slack Connect users when native Slack streaming is enabled.

In our case, OpenClaw generated the reply internally, but Slack streaming later failed with:

[slack] slack-stream: failed to stop stream: Error: An API error occurred: user_not_found

### Steps to reproduce

Enable Slack native streaming:
channels.slack.streaming.mode = "partial"
channels.slack.streaming.nativeTransport = true
Use OpenClaw in a Slack shared channel / thread involving a Slack Connect user
Ask the bot to reply in-thread
Check delivery behavior and gateway logs

### Expected behavior

The final reply should be delivered reliably in the Slack thread.

If native streaming is not supported for that user/thread, OpenClaw should fall back cleanly to normal message delivery without losing the response.

### Actual behavior

The reply is generated internally, but Slack streaming fails during stop/finalize with:

[slack] slack-stream: failed to stop stream: Error: An API error occurred: user_not_found
I also observed this related log line during debugging:

[slack] slack-stream: streaming API call failed: Error: An API error occurred: user_not_found, falling back
So fallback may exist for streaming start/call failure, but finalize/stop failure still appears to cause unreliable delivery.

### OpenClaw version

2026.4.14

### Operating system

macOS 26.4.1

### Install method

npm

### Model

chatgpt 5.4

### Provider / routing chain

Slack Connect shared channel/thread → Slack Socket Mode → local OpenClaw Gateway (macOS) → agent/session routing (agentname) → OpenAI Codex gpt-5.4 for response generation → OpenClaw Slack transport → Slack Web API / native Slack text streaming. No additional proxy or external model router in the Slack delivery path.

### Additional provider/model setup details

Slack mode: socket mode
Slack config:
channels.slack.streaming.mode = "partial"
channels.slack.streaming.nativeTransport = true
channels.slack.replyToMode = "first"



### Logs, screenshots, and evidence

```shell

Impact and severity

No response

Additional information

This looks like a Slack Connect-specific issue in native Slack streaming.

My current hypothesis is that streaming is using message.user / recipient_user_id in a way that does not work for Slack Connect users, causing stream lifecycle calls to fail with user_not_found.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingbug:behaviorIncorrect behavior without a crash

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions