Summary
It seems like discord's changed their API and are enforcing DAVE encryption on voice channels. The library currently can't connect/send any audio to voice channels and I see these errors when trying to use the voice API:
[ERROR : vws-i @ 2026-04-15 03:27:38.181] VWS error: E2EE/DAVE protocol required
I can repro the same error running this script:
# Usage: DISCORD_TOKEN=... CHANNEL_ID=... ruby repro.rb
#
# Reproduces: [ERROR : vws-i] VWS error: E2EE/DAVE protocol required
# Requires: gem install discordrb
require "discordrb"
bot = Discordrb::Bot.new(token: ENV.fetch("DISCORD_TOKEN"))
bot.ready do
channel_id = ENV.fetch("CHANNEL_ID").to_i
puts "Attempting to join voice channel #{channel_id}..."
bot.voice_connect(channel_id)
end
bot.run
Environment
Ruby version:
# ruby -v
ruby 4.0.2 (2026-03-17 revision d3da9fec82) +PRISM [aarch64-linux-musl]
Discordrb version:
# gem list discordrb
*** LOCAL GEMS ***
discordrb (3.7.2)
discordrb-webhooks (3.7.2)
Summary
It seems like discord's changed their API and are enforcing DAVE encryption on voice channels. The library currently can't connect/send any audio to voice channels and I see these errors when trying to use the voice API:
I can repro the same error running this script:
Environment
Ruby version:
Discordrb version: