diff --git a/extensions/telegram/src/bot-handlers.buffers.ts b/extensions/telegram/src/bot-handlers.buffers.ts index 7d301251176..fe2149794a3 100644 --- a/extensions/telegram/src/bot-handlers.buffers.ts +++ b/extensions/telegram/src/bot-handlers.buffers.ts @@ -305,8 +305,11 @@ export function createTelegramInboundBufferRuntime(params: { const combinedText = entries .map((entry) => entry.msg.text ?? entry.msg.caption ?? "") .filter(Boolean) - .join("\n"); - const combinedMedia = entries.flatMap((entry) => entry.allMedia); + .join(" +"); + // Fix: only use last entry's media to prevent ghost attachments from debounce buffer + // See: https://github.com/openclaw/openclaw/issues/46655 + const combinedMedia = entries.at(-1)?.allMedia ?? []; if (!combinedText.trim() && combinedMedia.length === 0) { return; } diff --git a/extensions/telegram/src/bot-handlers.runtime.ts b/extensions/telegram/src/bot-handlers.runtime.ts index 6df428d1273..8a62e8bd310 100644 --- a/extensions/telegram/src/bot-handlers.runtime.ts +++ b/extensions/telegram/src/bot-handlers.runtime.ts @@ -226,7 +226,9 @@ export const registerTelegramHandlers = ({ .map((entry) => entry.msg.text ?? entry.msg.caption ?? "") .filter(Boolean) .join("\n"); - const combinedMedia = entries.flatMap((entry) => entry.allMedia); + // Fix: only use last entry's media to prevent ghost attachments from debounce buffer + // See: https://github.com/openclaw/openclaw/issues/46655 + const combinedMedia = entries.at(-1)?.allMedia ?? []; if (!combinedText.trim() && combinedMedia.length === 0) { return; }