-
-
Notifications
You must be signed in to change notification settings - Fork 52.5k
Closed
Description
Summary
When using Discord voice channels, the DAVE (Discord Audio Video Encryption) protocol can cause garbled/broken audio output. The underlying @discordjs/voice v0.19.0 enables DAVE by default, but bots typically don't need E2EE and the implementation has known issues (discord.js #11419, #11387).
Current Behavior
joinVoiceChannel()is called withoutdaveEncryptionoption, defaulting totrue- Audio output is frequently garbled due to DAVE encryption state mismatches
- Error:
DecryptionFailed(UnencryptedWhenPassthroughDisabled)on the receive side - Workaround requires patching
dist/reply-*.jsto adddaveEncryption: falseto thejoinVoiceChannel()call — patch is lost on everynpm install -g openclawupdate
Proposed Solution
Add a daveEncryption boolean option to the Discord voice config:
{
"channels": {
"discord": {
"voice": {
"enabled": true,
"daveEncryption": false,
"autoJoin": [...]
}
}
}
}This would be passed through to the joinVoiceChannel() call in the voice subsystem.
Additionally, exposing decryptionFailureTolerance (default 24 in @discordjs/voice) would help bots recover faster from transient DAVE failures.
Environment
- OpenClaw: 2026.2.21-2
- @discordjs/voice: 0.19.0
- macOS (arm64)
- Node.js 25.6.1
Workaround
Manually patch the dist file to add daveEncryption: false and decryptionFailureTolerance: 10 to the joinVoiceChannel() call. Must be reapplied after every update.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels