Skip to content

[Bug]: Discord embed title dropped from message text — only description is passed to agent #26907

@Entrasoft

Description

@Entrasoft

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions