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
Bug type
Crash (process/app exits or hangs)
Summary
The
messagetool schema validation requirescomponentsproperty for all message actions, including simple file attachments viamediaparameter. This is incorrect —componentsshould only be required when using Discord interactive components (buttons, selects, forms).Steps to reproduce
..
Expected behavior
This should work:
Actual behavior
The above fails with:
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
Additional information
Workaround
Add empty
componentsobject:This workaround is functional but shouldn't be necessary.
Additional Constraints Discovered
~/.openclaw/workspace/—/tmp/paths are rejected with:Local media path is not under an allowed directorySuggested Fix
Make
componentsproperty optional in themessagetool 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