Summary
After upgrading to v2026.3.22, the message tool fails schema validation for Discord actions that don't use the components field:
Validation failed for tool "message": components must have required property 'components'
This affects any Discord action call that omits components, including pin, unpin, react, read, etc. — actions where components is irrelevant.
Likely cause
The 2026.3.22 release changed message tool schema discovery from the legacy listActions/getToolSchema adapter methods to the new describeMessageTool(...) API:
Plugins/message discovery: require ChannelMessageActionAdapter.describeMessageTool(...) for shared message tool discovery.
It appears the Discord plugin's describeMessageTool implementation marks components as a required field in the tool schema, when it should be optional (it only applies to send and similar actions, not pin, react, read, etc.).
This is consistent with the Telegram/Mattermost fix that also shipped in 2026.3.22:
Telegram/Mattermost message tool: keep plugin button schemas optional in isolated and cron sessions so plain sends do not fail validation when no current channel is active. (#52589)
The Discord channel appears to have the same problem but was not fixed in this release.
Reproduction
In any agent session with a Discord account configured, call the message tool with any non-send action that doesn't include components:
{
"action": "pin",
"accountId": "<your-account>",
"messageId": "<message-id>",
"channel": "<channel-id>"
}
Result:
Validation failed for tool "message": components must have required property 'components'
This worked correctly in v2026.3.21 and prior.
Expected behavior
components should be optional in the Discord message tool schema. It is only meaningful for send (and possibly thread-create/thread-reply). All other actions — pin, unpin, react, read, edit, delete, list-pins, etc. — should be callable without it.
Related
Environment
- OpenClaw: v2026.3.22 (4dcc39c)
- Channel: Discord
- Runtime: agent session (researcher agent)
Summary
After upgrading to v2026.3.22, the
messagetool fails schema validation for Discord actions that don't use thecomponentsfield:This affects any Discord action call that omits
components, includingpin,unpin,react,read, etc. — actions wherecomponentsis irrelevant.Likely cause
The 2026.3.22 release changed message tool schema discovery from the legacy
listActions/getToolSchemaadapter methods to the newdescribeMessageTool(...)API:It appears the Discord plugin's
describeMessageToolimplementation markscomponentsas a required field in the tool schema, when it should be optional (it only applies tosendand similar actions, notpin,react,read, etc.).This is consistent with the Telegram/Mattermost fix that also shipped in 2026.3.22:
The Discord channel appears to have the same problem but was not fixed in this release.
Reproduction
In any agent session with a Discord account configured, call the
messagetool with any non-send action that doesn't includecomponents:{ "action": "pin", "accountId": "<your-account>", "messageId": "<message-id>", "channel": "<channel-id>" }Result:
This worked correctly in v2026.3.21 and prior.
Expected behavior
componentsshould be optional in the Discord message tool schema. It is only meaningful forsend(and possiblythread-create/thread-reply). All other actions —pin,unpin,react,read,edit,delete,list-pins, etc. — should be callable without it.Related
Environment