Skip to content

message tool incorrectly requires components for file attachments #54763

Description

@OUTLAWORACLETX

Bug type

Crash (process/app exits or hangs)

Summary

The message tool schema validation requires components property for all message actions, including simple file attachments via media parameter. This is incorrect — components should only be required when using Discord interactive components (buttons, selects, forms).

Steps to reproduce

..

Expected behavior

This should work:

message(
  action: "send",
  channel: "discord",
  target: "<channel-id>",
  message: "Message text",
  media: "/path/to/file.pdf"
)

Actual behavior

The above fails with:

Validation failed for tool "message":
  - components: must have required property 'components'

OpenClaw version

2026.3.22 (4dcc39c)

Operating system

macOS 15.3 (Darwin arm64)

Install method

No response

Model

anthropic/claude-sonnet-4-5

Provider / routing chain

Direct Anthropic API via api-key authentication (no proxy/routing layer)

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

  • Breaks file attachment attempts across all Discord channels
  • Affects sub-agents (AGRIPPA) trying to deliver PDF documentation
  • Requires manual workaround documentation in agent specs

Additional information

Workaround

Add empty components object:

message(
  action: "send",
  channel: "discord",
  target: "<channel-id>",
  message: "Message text",
  media: "/path/to/file.pdf",
  components: {}  // ← Required to satisfy validator
)

This workaround is functional but shouldn't be necessary.

Additional Constraints Discovered

  • File paths must be under ~/.openclaw/workspace//tmp/ paths are rejected with: Local media path is not under an allowed directory

Suggested Fix

Make components property optional in the message tool schema. Only validate its structure when present.


Reported by: [email protected] (Node 1 - Commodus)
Date: March 25, 2026
Workaround confirmed: March 25, 2026 10:07 AM CT

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions