-
-
Notifications
You must be signed in to change notification settings - Fork 52.6k
Description
Summary
Summary
When a Discord bot/webhook message contains an embed with both a title and description, only the description is passed to the agent as message text. The embed title is silently dropped, causing the agent to receive incomplete message content.
Version
OpenClaw 2026.2.19 (latest as of filing), Node v22.22.0, macOS
Root Cause
In extensionAPI.js, the Discord message text resolution uses:
jsconst baseText = message.content?.trim() || buildDiscordAttachmentPlaceholder(message.attachments) || message.embeds?.[0]?.description || ...
This reads embeds[0].description but never concatenates embeds[0].title.
There is a separate line that shows awareness of the title field:
jsconst embedText = embed?.description?.trim() || embed?.title?.trim() || "";
But this only uses title as a fallback when description is empty. When both exist (common with webhook embeds), the title is discarded.
Steps to reproduce
Steps to Reproduce
Configure a Discord channel with allowBots: true
Have a webhook post an embed with both title and description fields:
Title: 🚨 SNIPER SIGNAL: AMZN
Description: The bullish fundamental catalyst is exceptionally strong...
Expected behavior
Both embed.title and embed.description should be included in the message text passed to the agent.
Actual behavior
Agent receives only the description text. The title is never included.
OpenClaw version
OpenClaw 2026.2.19 (latest as of filing), Node v22.22.0,
Operating system
macOS
Install method
No response
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
Suggested fix:
js// Replace:
message.embeds?.[0]?.description
// With:
[message.embeds?.[0]?.title, message.embeds?.[0]?.description].filter(Boolean).join("\n")
Impact
Any Discord integration relying on embed titles for structured data (webhook signals, bot notifications, alert systems) loses critical information. In our case, the ticker symbol for trading signals is exclusively in the embed title, making the agent unable to process signals without manual intervention.
Workaround
Local patch to extensionAPI.js concatenating title + description. Gets overwritten on update.