Skip to content

Audio/image/video transcription failures are silently swallowed unless debug logging is enabled #60421

Description

@KurtVogel

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

  1. runAttachmentEntries (runner) — catches errors, logs at verbose only
  2. runWithConcurrency onTaskError (apply) — logs at verbose only
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions