Skip to content

[Bug]: Slack inbound file attachments silently fail in 2026.4.5 (undici 8.x SSRF dispatcher incompatible with Node built-in fetch) #62218

@escapeit

Description

@escapeit

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Slack file attachments are not downloaded in 2026.4.5; agent receives text-only [Slack file: name.png] placeholder instead of image content, confirmed by session transcript and empty media store.

Steps to reproduce

  1. Install OpenClaw 2026.4.5 via npm global
  2. Configure Slack channel with bot token (files:read scope present)
  3. Send an image attachment in a Slack DM to the bot
  4. Observe agent receives [Slack file: name.png] text, no image content

Expected behavior

On 2026.4.2, the same Slack DM image attachment was downloaded, saved to ~/.openclaw/media/inbound/, and passed to the agent as image content. Agent could see and describe the image.

Actual behavior

Agent receives [Slack file: Screenshot.png] as text only. No image data in session transcript (confirmed via jsonl). No new files in ~/.openclaw/media/inbound/ after sending attachment. Zero log output at any level.

After instrumenting the silent catch { return null; } in resolveSlackMedia() (actions-ClxauASC.js), the following error was captured:

MediaFetchError: Failed to fetch media from https://files.slack.com/…: fetch failed | invalid onRequestStart method
  cause: InvalidArgumentError: invalid onRequestStart method
    at assertRequestHandler (undici/lib/core/util.js:550:11)
    code: 'UND_ERR_INVALID_ARG'

OpenClaw version

2026.4.5

Operating system

macOS 26.4 (arm64)

Install method

npm global

Model

anthropic/claude-opus-4-6

Provider / routing chain

openclaw -> anthropic

Additional provider/model setup details

Not model-related. Bug is in the Slack inbound media download pipeline (resolveSlackMedia), before any model call. Slack channel configured with Socket Mode, bot token with files:read scope.

Logs, screenshots, and evidence

1. Session transcript (jsonl) shows only text content block with "[Slack file: Screenshot.png]" — no image_url or base64 content.

2. Media store (ls -lt ~/.openclaw/media/inbound/) shows no new files after Slack attachment — only webchat uploads.

3. Gateway log shows zero file download attempts or errors (silent catch).

4. After patching catch block: MediaFetchError with cause InvalidArgumentError: invalid onRequestStart method (UND_ERR_INVALID_ARG).

5. Manual verification: curl and node fetch() both successfully download the same file with the same bot token and URL.

6. Version comparison:
   npm view openclaw@2026.4.2 dependencies → undici: '^7.24.6' (works)
   npm view openclaw@2026.4.5 dependencies → undici: '^8.0.1' (broken)
   Node 25.9.0 built-in undici: 7.24.4
   Node 24.14.1 built-in undici: 7.24.4

Impact and severity

Affected: All Slack users sending file/image attachments on 2026.4.5
Severity: Blocks workflow (Slack vision/image workflows completely broken)
Frequency: Always - 100% reproduction on every Slack file attachment
Consequence: Agent cannot see any images sent via Slack; no error visible to user or in logs without patching source code

Additional information

Last known good version: 2026.4.2
First known bad version: 2026.4.5
Workaround: npm install -g openclaw@2026.4.2 && openclaw gateway restart

The silent catch { return null; } in resolveSlackMedia() produces zero log output on failure.

Related: #62181 — also related to the undici ^7→^8 bump in 2026.4.5.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions