Skip to content

Feature Request: Add daveEncryption config option for Discord voice #23890

@ericsr

Description

@ericsr

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 without daveEncryption option, defaulting to true
  • Audio output is frequently garbled due to DAVE encryption state mismatches
  • Error: DecryptionFailed(UnencryptedWhenPassthroughDisabled) on the receive side
  • Workaround requires patching dist/reply-*.js to add daveEncryption: false to the joinVoiceChannel() call — patch is lost on every npm install -g openclaw update

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    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