-
-
Notifications
You must be signed in to change notification settings - Fork 52.6k
Closed
Description
Summary
Discord voice receive (STT pipeline) is completely broken. The bot joins the voice channel, TTS playback works, but no audio is received from users — the speaking event never fires.
Error
discord voice: receive error: Failed to decrypt: DecryptionFailed(UnencryptedWhenPassthroughDisabled)
This appears in logs with --verbose enabled.
Root Cause
@discordjs/voice 0.19.0 has a known bug with DAVE (Discord Audio Visual Encryption) protocol handling for receiving audio. Sending works fine.
Upstream issue: discordjs/discord.js#11419
Discord is enforcing DAVE E2EE on all voice channels starting March 2, 2026. The @discordjs/voice library cannot properly negotiate DAVE for incoming audio streams.
Environment
- OpenClaw: 2026.2.22-2
@discordjs/voice: 0.19.0@snazzah/davey: 0.1.9- Node.js: v22.22.0
- Ubuntu 24.04 (Azure VM)
Steps to Reproduce
- Configure
channels.discord.voice.enabled: truewith autoJoin - Configure STT provider (
tools.media.audio) - Bot joins voice channel successfully
- TTS works — users hear the bot
- STT fails — bot receives zero audio, no
speakingevents
Expected Behavior
Bot receives user audio, transcribes via STT, and responds via TTS (full duplex voice conversation).
Workaround
None currently. Waiting for upstream fix in @discordjs/voice.
Notes
- The maintainer of discord.js confirmed this is a real receiving bug (comment on LINE: fix buffer guards in detectContentType + add tests #11419)
@snazzah/daveyhandles DAVE for sending but the receive path in@discordjs/voiceis broken- py-cord (Python) handles DAVE correctly on the same channel, confirming it's a JS library issue
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels