spicetify/cli · error
detected Spotify build! spicetify works only on Release…
Error message
detected %s Spotify build! spicetify works only on Release builds. Please install latest Release version of Spotify
What it means
validateReleaseBuild regex-matches the Spotify binary for a build-type marker (Master|Release|PR|Local). If the build type is detected but is not "Release", this error is returned because spicetify only supports Release builds. The detected type is interpolated into the message.
Solutions
- Uninstall the current Spotify client and install the latest official Release version.
- Disable Spotify auto-updates to a non-release channel, or pin the release client.
- Re-run `spicetify backup apply` after installing the Release build.
- Check spicetify's supported Spotify versions if your Release build is too new and still unsupported.
Defensive patterns
Strategy: validation
Validate before calling
// Caller-side: verify installed client channel before applying
out, _ := exec.Command("spotify", "--version").Output()
if strings.Contains(string(out), "Master") || strings.Contains(string(out), "Local") {
return fmt.Errorf("non-Release Spotify installed; reinstall official release")
} Try / catch
if err := spicetify.Apply(); err != nil {
if strings.Contains(err.Error(), "works only on Release builds") {
// prompt: reinstall official Release Spotify
}
return err
} Prevention
- Install only official Release-channel Spotify clients.
- Disable experimental/beta client auto-update tracks.
- Check spicetify compatibility notes before upgrading Spotify.
When it happens
Trigger: validateReleaseBuild finds a build-type match (e.g. "Master Build ..." or "Local Build ...") where matches[1] != "Release" during preprocessing (backup/apply).
Common situations: User installed a Spotify development/nightly or Master-branch build; internal/local Spotify builds from source; downgraded or experimental client channels; auto-update switched the client to a non-release track.
Related errors
AI-assisted analysis of spicetify/cli@1f13f73616 (2026-08-31).
Data as JSON: /api/errors/67415f67870b03b3.
Report an issue: GitHub.
Appendix: source
Thrown at src/preprocess/preprocess.go:1089
}
func validateReleaseBuild(spotifyBinaryPath string) error {
fileContent, err := os.ReadFile(spotifyBinaryPath)
if err != nil {
return fmt.Errorf("could not read %s: %w", filepath.Base(spotifyBinaryPath), err)
}
buildRegex := regexp.MustCompile(`(Master|Release|PR|Local) Build.+(?:cef_)?(\d+\.\d+\.\d+\+g[0-9a-f]+\+chromium-\d+\.\d+\.\d+\.\d+)`)
matches := buildRegex.FindSubmatch(fileContent)
if len(matches) == 0 {
utils.PrintWarning(fmt.Sprintf("Could not detect Spotify build type in %s, skipping validation", filepath.Base(spotifyBinaryPath)))
return nil
}
buildType := string(matches[1])
if buildType != "Release" {
return fmt.Errorf("detected %s Spotify build! spicetify works only on Release builds. Please install latest Release version of Spotify", buildType)
}
utils.PrintSuccess(fmt.Sprintf("Spotify's build type is %s. Continuing...", string(matches[1])))
return nil
}
type githubRelease = utils.GithubRelease
func splitVersion(version string) ([3]int, error) {
vstring := version
if vstring[0:1] == "v" {
vstring = version[1:]
}
vSplit := strings.Split(vstring, ".")
var vInts [3]int
if len(vSplit) != 3 {
return [3]int{}, errors.New("invalid version string")
}View on GitHub (pinned to 1f13f73616)