Skip to content

Telegram voice-note regression in 2026.3.22: forced voice-note intermittently delivered as audio file + transient channel unavailable #53117

Description

@adamvandenbos

Summary

After upgrading to OpenClaw 2026.3.22, Telegram voice reply behavior is unstable:

  1. Voice replies intermittently arrive as audio file cards (MP3-style UI) instead of voice-note bubbles.
  2. Outbound Telegram sends intermittently fail with Channel is unavailable: telegram, then recover seconds later.

This happens even when we explicitly force voice-note routing in replies.

Environment

  • OpenClaw: 2026.3.22
  • Host: Linux (jarvis, loopback gateway)
  • Channel: Telegram DM
  • Config (effective during tests):
    • messages.tts.auto: off (manual route)
    • messages.tts.provider: openai
    • messages.tts.mode: final
    • messages.tts.openai.model: gpt-4o-mini-tts
    • messages.tts.openai.voice: onyx
    • channels.telegram.enabled: true

What we tested

  • A/B paths with/without force markers (including explicit voice-note forcing in assistant reply path)
  • Provider variants (OpenAI / Microsoft Opus config)
  • messages.tts.auto modes (always, inbound, off)
  • Manual sequencing (voice then text summary)

Actual behavior

  • Some replies render correctly as voice-note bubbles.
  • Other replies in same session/flow render as audio file cards.
  • Intermittent errors in gateway logs:
    • message failed: Channel is unavailable: telegram
  • Recovery is often immediate/near-immediate (next send succeeds).

Evidence (recent logs)

From journalctl --user -u openclaw-gateway.service --since '2 hours ago':

  • 2026-03-23T16:00:27message failed: Channel is unavailable: telegram
  • 2026-03-23T16:00:31message failed: Channel is unavailable: telegram
  • 2026-03-23T16:04:16message failed: Channel is unavailable: telegram
  • 2026-03-23T16:04:24 → immediate success sendMessage ok ... message=13361
  • 2026-03-23T16:06:22 → success sendMessage ok ... message=13363

This pattern repeats throughout the session (brief unavailable spikes amid successful sends).

Expected behavior

  • If voice-note is forced, Telegram should consistently use sendVoice delivery semantics (voice bubble UI) rather than occasionally degrading to audio-file card.
  • Transient channel unavailability should have robust retry/fallback behavior with clear classification and logging.

Impact

  • User-facing inconsistency in core voice UX (bubble vs file card)
  • Perceived unreliability after update
  • Operational confusion during troubleshooting because behavior flips within same config/session

Related issues

Potentially related historical reports:

Request

Please investigate Telegram send-path selection and fallback behavior in 2026.3.x:

  • Ensure forced voice-note path stays deterministic
  • Improve resilience and observability around transient Channel is unavailable: telegram
  • Clarify whether fallback to sendAudio can occur under specific failure/retry branches

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