openclaw - 💡(How to fix) Fix Discord TTS voice message delivery fails: ffmpeg cannot determine output format from .ogg.part extension

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…

Error Message

discord final reply failed: OutboundDeliveryError: Command failed: /usr/bin/ffmpeg -y -i /tmp/openclaw/voice-src-xxx/input.mp3 -vn -sn -dn -t 1200 -ar 48000 -c:a libopus -b:a 64k /tmp/fs-safe-output-1000/fs-safe-output-xxx/.fs-safe-output-xxx-voice-xxx.ogg.part

[AVFormatContext @ ...] Unable to choose an output format for '...ogg.part'; use a standard extension for the filename or specify the format manually.
[out#0 @ ...] Error initializing the muxer for ...ogg.part: Invalid argument
Error opening output file ...ogg.part.
Error opening output files: Invalid argument

Root Cause

ffmpeg auto-detects the output container format from the file extension. The .ogg.part extension is not recognized, so ffmpeg fails to initialize the OGG muxer.

The resolveSystemBin("ffmpeg") call resolves to /usr/bin/ffmpeg using a trusted-dir search (only /usr/bin, /bin, etc.), so PATH-based workarounds (e.g., a wrapper in ~/.local/bin) are not effective.

Fix Action

Fix / Workaround

The resolveSystemBin("ffmpeg") call resolves to /usr/bin/ffmpeg using a trusted-dir search (only /usr/bin, /bin, etc.), so PATH-based workarounds (e.g., a wrapper in ~/.local/bin) are not effective.

Code Example

discord final reply failed: OutboundDeliveryError: Command failed: /usr/bin/ffmpeg -y -i /tmp/openclaw/voice-src-xxx/input.mp3 -vn -sn -dn -t 1200 -ar 48000 -c:a libopus -b:a 64k /tmp/fs-safe-output-1000/fs-safe-output-xxx/.fs-safe-output-xxx-voice-xxx.ogg.part

[AVFormatContext @ ...] Unable to choose an output format for '...ogg.part'; use a standard extension for the filename or specify the format manually.
[out#0 @ ...] Error initializing the muxer for ...ogg.part: Invalid argument
Error opening output file ...ogg.part.
Error opening output files: Invalid argument
RAW_BUFFERClick to expand / collapse

Bug Description

When TTS is enabled and OpenClaw tries to send a voice message to Discord, the delivery fails because ffmpeg cannot determine the output format from the .ogg.part temporary file extension.

Error

discord final reply failed: OutboundDeliveryError: Command failed: /usr/bin/ffmpeg -y -i /tmp/openclaw/voice-src-xxx/input.mp3 -vn -sn -dn -t 1200 -ar 48000 -c:a libopus -b:a 64k /tmp/fs-safe-output-1000/fs-safe-output-xxx/.fs-safe-output-xxx-voice-xxx.ogg.part

[AVFormatContext @ ...] Unable to choose an output format for '...ogg.part'; use a standard extension for the filename or specify the format manually.
[out#0 @ ...] Error initializing the muxer for ...ogg.part: Invalid argument
Error opening output file ...ogg.part.
Error opening output files: Invalid argument

Root Cause

ffmpeg auto-detects the output container format from the file extension. The .ogg.part extension is not recognized, so ffmpeg fails to initialize the OGG muxer.

The resolveSystemBin("ffmpeg") call resolves to /usr/bin/ffmpeg using a trusted-dir search (only /usr/bin, /bin, etc.), so PATH-based workarounds (e.g., a wrapper in ~/.local/bin) are not effective.

Suggested Fix

Either:

  1. Add -f ogg to the ffmpeg command line to explicitly specify the output format, or
  2. Use a recognized extension (e.g., .ogg) for the temp file and rename after completion, or
  3. Strip the .part suffix before passing the filename to ffmpeg

Environment

  • OpenClaw: 2026.5.12
  • OS: Ubuntu (Linux 6.17)
  • ffmpeg: 6.1.1-3ubuntu5
  • Channel: Discord (plugin @openclaw/[email protected])
  • TTS provider: Microsoft (audio-24khz-48kbitrate-mono-mp3)

Impact

When TTS auto is enabled (via config or /tts on), all Discord replies fail silently — the text reply is also not delivered because the voice delivery error blocks the entire outbound message. This makes Discord channel completely unusable with TTS enabled.

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…

Still need to ship something?

×6

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

Back to top recommendations

TRENDING