Skip to content

[Bug]: TTS audio sent as file attachment instead of voice message in Feishu #59588

@weicongpeng

Description

@weicongpeng

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

TTS audio is delivered as MP3 file attachment instead of clickable voice message in Feishu.

Steps to reproduce

  1. Enable TTS in OpenClaw (messages.tts.auto: always, provider: microsoft)
  2. Send any message via Feishu channel
  3. The agent replies with text AND an MP3 audio file attachment
  4. The audio appears as a downloadable file, not a clickable voice message

Expected behavior

TTS audio should be sent as a Feishu voice message (clickable audio bubble), not as an MP3 file attachment. According to the TTS documentation, Feishu should receive Opus voice messages.

Actual behavior

The TTS audio is delivered as an MP3 file attachment in Feishu chat. Users must download the file and play it manually, rather than tapping to play like native Feishu voice messages.

OpenClaw version

2026.3.28

Operating system

Windows 11

Install method

npm global

Model

minimax/MiniMax-M2.7

Provider / routing chain

openclaw -> feishu (channel) -> minimax (model provider)

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

Affected: Feishu channel users with TTS enabled
Severity: Annoying (degrades user experience)
Frequency: Always (100% of TTS replies)
Consequence: Users receive MP3 files instead of voice messages, requiring manual download and play instead of tap-to-play

Additional information

The TTS documentation states that Feishu should send Opus voice messages. The Feishu plugin has both sendVoice and sendFile APIs available, but TTS audio appears to be routed through sendFile instead of sendVoice. The TTS provider in use is Microsoft Edge TTS (microsoft).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingregressionBehavior that previously worked and now fails

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions