Description
All three catch boundaries in the media understanding pipeline log at verbose/debug level only. When an audio transcription fails (timeout, 5xx, empty response from Groq/OpenAI/Deepgram), the error is completely invisible at the default info log level.
Error Suppression Chain
runAttachmentEntries (runner) — catches errors, logs at verbose only
runWithConcurrency onTaskError (apply) — logs at verbose only
runTasksWithConcurrency — catches and continues by default
Result: user's voice message appears as <media:audio> with zero indication of why transcription failed. No log output at default level.
Impact
- Voice messages intermittently fail to transcribe with no diagnostic output
- Users must proactively enable debug logging to catch failures
- Makes debugging transcription flakiness nearly impossible
Suggested Fix
Log media understanding errors at warn level (not debug/verbose). These are external API failures that directly impact user experience and should always be visible in logs.
Environment
- OpenClaw 2026.4.2
- Provider: Groq (whisper-large-v3-turbo)
- Channel: Telegram DM
Description
All three catch boundaries in the media understanding pipeline log at verbose/debug level only. When an audio transcription fails (timeout, 5xx, empty response from Groq/OpenAI/Deepgram), the error is completely invisible at the default
infolog level.Error Suppression Chain
runAttachmentEntries(runner) — catches errors, logs at verbose onlyrunWithConcurrencyonTaskError(apply) — logs at verbose onlyrunTasksWithConcurrency— catches and continues by defaultResult: user's voice message appears as
<media:audio>with zero indication of why transcription failed. No log output at default level.Impact
Suggested Fix
Log media understanding errors at
warnlevel (not debug/verbose). These are external API failures that directly impact user experience and should always be visible in logs.Environment