Skip to main content

Version 3 Changelog

End of LifeLavalink v3 has reached end of life. Version 3.7.13 is the final v3 release. Please migrate to Lavalink v4 for continued support and updates.See the migration discussion for more information.

v3.7.13

This is the last Lavalink v3 release.
Updates:

v3.7.12

YouTube Source DeprecationThe default YouTube source is now deprecated and won’t receive further updates. Please use the YouTube Source Plugin instead.
Updates:
  • Updated Lavaplayer to 1.5.4
  • Updated Koe to 2.0.1 (fixes the IndexOutOfBoundsException when playing a YouTube track)

v3.7.11

Fixes:
  • Fixed not being able to seek when player is paused
Updates:
  • Updated Oshi to 6.4.3
  • Updated Lavaplayer to 1.5.3

v3.7.10

Updates:
  • Updated lavaplayer to 1.5.2 - Fixed NPE on missing author in playlist tracks in YouTube

v3.7.9

Updates:
  • Updated lavaplayer to 1.5.1 - Fixed YouTube access token errors
Fixes:
  • Fixed websocket crash when seeking and nothing is playing
  • Fixed error when seeking and player is not playing anything

v3.7.8

Fixes:
  • Fix YouTube 403 errors
  • Fix YouTube access token errors

v3.7.7

Features:
  • Add JDA-NAS support for musl (x86-64, aarch64) based systems (most notably alpine)

v3.7.6

Updates: Features:
  • New support for MUSL based systems (most notably alpine)
  • New alpine docker image variant (use -alpine suffix)

v3.7.5

Lavalink Docker images are now found in the GitHub Container Registry instead of DockerHub.
Fixes:
  • Fix endTime in Player Update endpoint only applying when playing a new track
  • Fix errors when doing multiple session resumes
Updates:

v3.7.4

Fixes:
  • Fix an issue where Lavalink would not destroy a session when a client disconnects

v3.7.3

Fixes:
  • Fix breaking change where /decodetrack would return a full track instead of the track info

v3.7.2

Fixes:
  • Fix breaking change where frameStats would be null instead of omitted

v3.7.1

Changes:
  • Revert of application.yml autocreate as it can cause issues with differently named configs

v3.7.0

This release introduces a new REST API for player control and deprecates all websocket operations.
Breaking Changes:
  • New REST API for player control and deprecation of all websocket OPs
Features:
  • Autocreate default application.yml if none was found - #781
  • New config option to disable jda nas - #780
  • New config option to disable specific filters - #779
Updates:
  • Update lavaplayer to 1.3.99.2 - #794
  • Update udpqueue.rs to v0.2.6 - #802
Contributors: @topi314, @Devoxin, @melike2d, @freyacodes, @aikaterna, @ooliver1

v3.6.2

Updates:
  • Update lavaplayer to 1.3.99.1 - #773

v3.6.1

Updates:
  • Update lavaplayer to 1.3.99 - #768

v3.6.0

Features:
  • New userId & clientName getters in the plugin-api - #743
Contributors: @melike2d

v3.5.1

Updates:
  • Update udpqueue.rs to 0.2.5 which fixes crashes when ipv6 is disabled
Fixes:
  • Fix null socketContext in IPlayer for plugins
Features:
  • New ping field in player update - see #738 for more info
Contributors: @topi314, @Devoxin, and @freyacodes

v3.5

Features:
  • New plugin system - see PLUGINS.md
  • Add support for HTTP proxying via httpConfig - #595
  • Configurable track stuck threshold - #676
  • Add JDA-NAS support for more CPU Architectures - #692. Big thanks to @MinnDevelopment
  • Undeprecation of the volume property in the play OP
Updates:
  • Update koe version to 2.0.0-rc1 (fixes the WebSocketClosedEvent with code 1006 problem)
  • Update lavaplayer to 1.3.98.4 which fixes the latest yt cipher issues and age restricted tracks
Fixes:
  • Fix error when enabling timescale and lowpass filters
  • Fix player not playing after moving between voice chats or changing regions
  • Fix guild ids sent as numbers in json
  • Fix missing timescale natives
  • Fix setting endMarkerHit to correctly set FINISHED as the reason
Contributors: @freyacodes, @davidffa, @Walkyst, @topi314, @duncte123, @Kodehawa, @Devoxin, @Muh9049, @melike2d, @ToxicMushroom, @mooner1022, @rohank05, @Fabricio20, @TheEssemm, and @jack1142

v3.4

Features:
  • New filters system
  • Added the connected boolean to player updates
  • Added source name to REST api track objects
  • Clients are now requested to make their name known during handshake
Breaking Changes:
  • Deprecation of TrackExceptionEvent.error, replaced by TrackExceptionEvent.exception
Updates:
  • Updated lavaplayer, fixes Soundcloud
Contributors: @freyacodes, @duncte123, @DaliborTrampota, @Mandruyd, @Allvaa, and @topi314

Minor Releases

v3.3.2.5

  • Update Lavaplayer to 1.3.76

v3.3.2.4

  • Update Lavaplayer to 1.3.74

v3.3.2.3

  • Update Lavaplayer to 1.3.65, fixes Soundcloud

v3.3.2.2

  • Updated Lavaplayer to 1.3.61
  • Fixed a ConcurrentModificationException (@Thewsomeguy)

v3.3.2.1

  • Updated to Sedmelluq’s Lavaplayer 1.3.53

v3.3.2

  • Replaced Magma with Koe
  • Finally implemented stopTime for play op
  • Added playerUpdateInterval config option
  • Added environment to Sentry config
  • Fixed #332
  • Updated IP rotator
  • Update lavaplayer to 1.3.59 from devoxin’s fork
  • Added a Testbot for development
Contributors: @freyacodes, @Thewsomeguy, @Neuheit, @Sangoon_Is_Noob, @TheEssem, and @Devoxin

v3.3.1.4

  • Update lavaplayer to 1.3.54.3 from devoxin’s fork

v3.3.1.3

  • Update lavaplayer to 1.3.53 from devoxin’s fork

v3.3.1.2

  • Update lavaplayer to @Devoxin’s fork

v3.3.1.1

  • Updated Lavaplayer to 1.3.50. This notably fixes YouTube search
Search patch contributed by @freyacodes

v3.3.1

  • Update Magma and Lavaplayer
  • Added TrackStartEvent event
  • Added retryLimit configuration option
  • Use a single AudioPlayerManager for all WS connections, reducing overhead
  • Docker images now use Zulu JDK 13 to mitigate TLS 1.3 problems
Contributors: @freyacodes, @duncte123, @ByteAlex, and @Xavinlol

v3.3

Officially limit Lavalink to JRE 11 and up. Magma has long been having issues with older versions.

v3.2.2

  • IP rotation system for getting around certain ratelimits
  • Update Lavaplayer to 1.3.32
  • Docker container now uses a non-root user
Contributors: @freyacodes, @ByteAlex, @duncte123, and @james7132

v3.2.1.1

  • Updated Lavaplayer to 1.3.19. This release includes a patch which fixes loading youtube URLs
  • Made the WebSocket handshake return code 401 instead of 200 on bad auth. #208
Contributors: @freyacodes and @Devoxin

v3.2.1

  • Update dependencies — fixes frequent youtube HTTP errors
  • Return FriendlyException message on LOAD_FAILED #174
  • Add option to disable ytsearch and scsearch #194
Contributors: @Devoxin, @duncte123, @freyacodes, and @napstr

v3.2.0.3

  • Add compatibility for Java 8-10
Contributor: @MinnDevelopment

v3.2.0.2

  • Patched magma
Contributor: @freyacodes

v3.2.0.1

  • Bumped to Java 11. Treating this as a patch version, as v3.2 still requires Java 11 due to a Magma update
@freyacodes

v3.2

  • Added support for resuming
  • Added noReplace option to the play op
  • Sending the same voice server update will not cause an existing connection to reconnect
Contributor: @freyacodes

v3.1.2

  • Add API version header to all responses
Contributor: @Devoxin

v3.1.1

  • Add equalizer support
  • Update lavaplayer to 1.3.10
  • Fixed automatic versioning
  • Added build config to upload binaries to GitHub releases from CI
Contributors: @Devoxin, @freyacodes, @calebj

v3.1

  • Replaced JDAA with Magma
  • Added an event for when the Discord voice WebSocket is closed
  • Replaced Tomcat and Java_Websocket with Undertow. WS and REST is now handled by the same server and port. Port is specified by server.port

v3.0

Breaking ChangesThis release includes significant breaking changes and requires Java 10 or higher.
Breaking Changes:
  • The minimum required Java version to run the server is now Java 10
    • Note: Java 10 became obsolete in September 2018 with the release of Java 11
  • Changes to the output of the /loadtracks endpoint - #91, #114, #116
  • The Java client has been moved to a new repository
  • The Java client has been made generic. See the migration guide
Features:
  • Better configurable logging - #97
  • Add custom sentry tags, change sentry dsn configuration location - #103
  • Add Lavalink version header to websocket handshake - #111
  • Use git tags for easier version visibility - #129
Contributors: @Devoxin, @freyacodes, @napstr, @SamOphis

Build docs developers (and LLMs) love