openclaw - ✅(Solved) Fix [Bug]: echoTranscript regression in v2026.4.25+ — transcript echo no longer sent (Telegram) [1 pull requests, 2 comments, 3 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#73615Fetched 2026-04-29 06:17:25
View on GitHub
Comments
2
Participants
3
Timeline
3
Reactions
0
Author
Timeline (top)
commented ×2cross-referenced ×1

tools.media.audio.echoTranscript stopped working after upgrading from v2026.4.21 to v2026.4.26. The transcript echo message (📝 "{transcript}") is no longer sent to Telegram before agent processing, despite being correctly configured and working on v2026.4.21.

This is a recurring regression — the same feature has broken across multiple upgrades.

Root Cause

tools.media.audio.echoTranscript stopped working after upgrading from v2026.4.21 to v2026.4.26. The transcript echo message (📝 "{transcript}") is no longer sent to Telegram before agent processing, despite being correctly configured and working on v2026.4.21.

This is a recurring regression — the same feature has broken across multiple upgrades.

Fix Action

Workaround

Manual echo via AGENTS.md standing order — agent sends transcript as text before responding.

PR fix notes

PR #73866: fix(media): send echoTranscript for preflight-transcribed audio

Description (problem / solution / changelog)

Summary

Fixes #73615 — tools.media.audio.echoTranscript regression where the transcript echo (📝 "{transcript}") is no longer sent to Telegram after upgrading to v2026.4.25+.

Root Cause

Commit 8bead989da (v2026.4.25) moved Telegram audio transcription into a preflight step that runs before the media-understanding pipeline. The preflight path:

  1. Transcribes audio via transcribeFirstAudio
  2. Sets MediaTranscribedIndexes on the context (marks attachment as alreadyTranscribed)
  3. Formats the transcript into the message body

But applyMediaUnderstanding then skips already-transcribed audio, produces no audio.transcription outputs, and therefore never enters the sendTranscriptEcho code path (which only fires when audioOutputs.length > 0).

Fix

Two-part change:

  1. Telegram context chain (bot-message-context.body.tsbot-message-context.tsbot-message-context.session.ts): Pass the preflightTranscript through the context chain and set ctx.Transcript when it exists, so the transcript is available to the media-understanding pipeline.

  2. Media understanding pipeline (apply.ts): After the main outputs processing block, detect the preflight case — ctx.Transcript is set but no audio outputs were produced — and call sendTranscriptEcho with the pre-existing transcript.

This approach:

  • Preserves the preflight architecture (audio transcribed once, no double-processing)
  • Reuses the existing sendTranscriptEcho function and format config
  • Works for any channel that sets ctx.Transcript before applyMediaUnderstanding runs

Testing

  • Regression test added in apply.test.ts: verifies sendTranscriptEcho fires for preflight-transcribed audio when echoTranscript: true
  • All existing tests pass: 46/46 in apply.test.ts, 103 files / 1475 tests in Telegram extension, full pnpm check + pnpm check:test-types clean

Files Changed

FileChange
extensions/telegram/src/bot-message-context.body.tsReturn preflightTranscript from body resolver
extensions/telegram/src/bot-message-context.tsPass preflightTranscript to session builder
extensions/telegram/src/bot-message-context.session.tsSet ctx.Transcript when preflightTranscript exists
src/media-understanding/apply.tsEcho preflight transcripts when no new audio outputs
src/media-understanding/apply.test.tsRegression test for preflight echo

Changed files

  • extensions/telegram/src/bot-message-context.body.ts (modified, +2/-0)
  • extensions/telegram/src/bot-message-context.session.ts (modified, +3/-0)
  • extensions/telegram/src/bot-message-context.ts (modified, +3/-0)
  • src/media-understanding/apply.test.ts (modified, +47/-0)
  • src/media-understanding/apply.ts (modified, +19/-0)

Code Example

{
  "tools": {
    "media": {
      "audio": {
        "enabled": true,
        "echoTranscript": true,
        "echoFormat": "📝 \"{transcript}\"",
        "models": [{"provider": "openai", "model": "whisper-1"}]
      }
    }
  }
}
RAW_BUFFERClick to expand / collapse

Summary

tools.media.audio.echoTranscript stopped working after upgrading from v2026.4.21 to v2026.4.26. The transcript echo message (📝 "{transcript}") is no longer sent to Telegram before agent processing, despite being correctly configured and working on v2026.4.21.

This is a recurring regression — the same feature has broken across multiple upgrades.

Environment

  • OpenClaw: v2026.4.26 (upgraded from v2026.4.21)
  • Channel: Telegram DM (long-polling)
  • Host: Linux 6.8.0-101-generic x64, systemd, Node 22.22.1
  • STT: OpenAI whisper-1 (bundled)

Config

{
  "tools": {
    "media": {
      "audio": {
        "enabled": true,
        "echoTranscript": true,
        "echoFormat": "📝 \"{transcript}\"",
        "models": [{"provider": "openai", "model": "whisper-1"}]
      }
    }
  }
}

Expected behavior

  1. User sends Telegram voice note
  2. OpenClaw transcribes audio via whisper-1
  3. Transcript echo (📝 "transcript text") is sent as a separate message to the chat
  4. Agent processes the message and responds

Actual behavior

  1. User sends Telegram voice note
  2. OpenClaw transcribes audio via whisper-1 ✅ (transcript visible in agent context)
  3. No echo message is sent
  4. Agent responds normally

The STT transcription works correctly — the transcript appears in the agent context as [Audio transcript (machine-generated, untrusted)]. But the sendTranscriptEcho function never fires.

Likely cause

In v2026.4.25, the changelog includes:

Telegram/STT: frame inbound voice-note transcripts as machine-generated, untrusted text in agent context while preserving raw transcript mention detection. Closes #33360.

This changed how transcripts are framed in the agent context. The sendTranscriptEcho function in apply-CelO_NUD.js checks audioCfg?.echoTranscript && transcript, but the transcript format change may have broken the code path.

Regression history

VersionIssueStatus
v2026.3.23#54030 (WhatsApp)Closed — fixed
v2026.3.26#55275 (Telegram queued)Closed — fixed
v2026.4.5#62205 (Telegram STT)Closed — fixed
v2026.4.8#63349 (Telegram raw .ogg)Closed — fixed
v2026.4.25+This issueOpen

This feature has regressed at least 5 times across upgrades. Consider adding regression tests for echoTranscript in the Telegram test suite.

Workaround

Manual echo via AGENTS.md standing order — agent sends transcript as text before responding.

extent analysis

TL;DR

The echoTranscript feature in OpenClaw v2026.4.26 may be broken due to changes in transcript framing, and a workaround is to manually echo the transcript via an agent standing order.

Guidance

  • Review the sendTranscriptEcho function in apply-CelO_NUD.js to ensure it correctly handles the new transcript format.
  • Verify that the audioCfg?.echoTranscript && transcript condition is met, considering the changed transcript framing.
  • Consider adding regression tests for echoTranscript in the Telegram test suite to prevent future breakages.
  • As a temporary workaround, use the manual echo via AGENTS.md standing order to send the transcript as text before responding.

Example

No code snippet is provided as the issue does not contain sufficient information to create a specific example.

Notes

The root cause of the issue is likely related to the changes in transcript framing introduced in v2026.4.25, which may have broken the sendTranscriptEcho function. The provided workaround can help mitigate the issue until a proper fix is implemented.

Recommendation

Apply the workaround by using manual echo via AGENTS.md standing order, as the issue is likely related to the changes in transcript framing and may require updates to the sendTranscriptEcho function.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

  1. User sends Telegram voice note
  2. OpenClaw transcribes audio via whisper-1
  3. Transcript echo (📝 "transcript text") is sent as a separate message to the chat
  4. Agent processes the message and responds

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - ✅(Solved) Fix [Bug]: echoTranscript regression in v2026.4.25+ — transcript echo no longer sent (Telegram) [1 pull requests, 2 comments, 3 participants]