Changelog Overview
Each Lavalink release includes various fixes and improvements. This section documents the most noteworthy changes, features, and breaking changes across all versions.Current Version
Lavalink v4 is now out of beta! The latest stable release brings significant improvements and modernization to the Lavalink API.Version 4 Changelog
View the complete version 4 changelog including the latest releases and breaking changes
Versioning Policy
Lavalink follows Semantic Versioning. The version number is composed of the following parts:Version Components
- MAJOR - Breaking API changes
- MINOR - New backwards compatible features
- PATCH - Backwards compatible bug fixes
- PRERELEASE - Pre-release version identifier
- BUILD - Additional build metadata
Release Types
Version numbers can come in different combinations, depending on the release type:MAJOR.MINOR.PATCH- Stable releaseMAJOR.MINOR.PATCH+BUILD- Stable release with additional build metadataMAJOR.MINOR.PATCH-PRERELEASE- Pre-release versionMAJOR.MINOR.PATCH-PRERELEASE+BUILD- Pre-release with additional build metadata
Example Versions
Version History
Version 4
Latest major version with REST-based API and modern features
Version 3
Previous major version with WebSocket operations (deprecated)
Version 2
Legacy version with foundational features
GitHub Releases
For the complete version history and release artifacts, visit the Lavalink GitHub Releases page.Upgrade Guides
When upgrading between major versions, review the significant changes sections:v3.7.0 → v4.0.0
v3.7.0 → v4.0.0
Breaking Changes
- Removed all non-version
/v3or/v4endpoints (except/version) /v4/websocketdoes not accept any client messages anymorev4uses thesessionIdinstead of theresumeKeyfor resumingv4now returns the tracksartworkUrlandisrcif the source supports it- Removal of deprecated JSON fields like
track - Updated capitalization of Track End Reason and Severity enums
- Reworked Load Result object structure
WebSocket Operations Removed
All websocket ops are removed in v4.0.0 and replaced with REST endpoints:play→ Update Player Endpointtrack→encodedortrack→identifierfieldstop→ Update Player EndpointencodedTrackfield withnullpause→ Update Player Endpointpausefieldseek→ Update Player Endpointpositionfieldvolume→ Update Player Endpointvolumefieldfilters→ Update Player Endpointfiltersfielddestroy→ Destroy Player EndpointvoiceUpdate→ Update Player EndpointvoicefieldconfigureResuming→ Update Session Endpoint
New Features
- Addition of
artworkUrlandisrcfields to Track Info object - Addition of full Track object in all track events
- User data can be set on tracks via REST API
v3.6.0 → v3.7.0
v3.6.0 → v3.7.0
Changes
- Moved HTTP endpoints under the new
/v3path - WebSocket handshakes should use
/v3/websocket - Deprecation of all client-to-server WebSocket messages
- Addition of REST endpoints to replace client requests
- New Ready OP to get
sessionIdand resume status - New Session/Player REST API
- Deprecation of
Track.track(useTrack.encodedinstead) - Player now has a
statefield
v2.0 → v3.0
v2.0 → v3.0
Breaking Changes
- The response of
/loadtrackswas completely changed - Lavalink v3.0 reports its version as a handshake response header
Lavalink-Major-Versionhas a value of3for v3.0 only- Minimum required Java version is now Java 10 (later updated to Java 11)
- Java client moved to a new repository
- Java client made generic
v1.3 → v2.0
v1.3 → v2.0
Removed Operations
The following ops were removed in v2.0:connectdisconnectvalidationResisConnectedResvalidationReqisConnectedReqsendWS
Architecture Changes
Voice connections are now initiated by forwarding avoiceUpdate (VOICE_SERVER_UPDATE) to the server. The responsibility of handling Discord voice updates shifted from the server to the client.Support
For questions about specific releases or upgrade assistance:- Join the Lavalink Discord Server
- Check GitHub Discussions
- Review the FAQ