spicetify/cli · critical

aborting the patching process due to missing Spotify binarie

Error message

aborting the patching process due to missing Spotify binaries

What it means

During preprocessing, spicetify locates the Spotify binary to patch: on Windows it looks for spotify.dll or spotify.exe in the Spotify installation directory. If neither file exists, it prints a detail message and fatals with this error, aborting patching because there is no binary to modify.

Source

Thrown at src/preprocess/preprocess.go:139

		spotifyMinor, _ = strconv.Atoi(verParts[1])
	}
	if len(verParts) > 2 {
		spotifyPatch, _ = strconv.Atoi(verParts[2])
	}

	var spotifyBinaryPath string
	switch runtime.GOOS {
	case "windows":
		dllPath := filepath.Join(spotifyBasePath, "spotify.dll")
		exePath := filepath.Join(spotifyBasePath, "spotify.exe")

		if _, err := os.Stat(dllPath); err == nil {
			spotifyBinaryPath = dllPath
		} else if _, err := os.Stat(exePath); err == nil {
			spotifyBinaryPath = exePath
		} else {
			utils.PrintError("Could not find spotify.dll or spotify.exe in Spotify installation directory")
			utils.Fatal(errors.New("aborting the patching process due to missing Spotify binaries"))
		}
	case "darwin":
		spotifyBinaryPath = filepath.Join(spotifyBasePath, "..", "MacOS", "Spotify")
	}

	if spotifyBinaryPath != "" {
		if err := validateReleaseBuild(spotifyBinaryPath); err != nil {
			utils.PrintError(err.Error())
			utils.Fatal(errors.New("aborting the patching process due to unsupported build"))
		}
	}

	frameworkResourcesPath := ""
	switch runtime.GOOS {
	case "darwin":
		frameworkResourcesPath = filepath.Join(spotifyBasePath, "..", "Frameworks", "Chromium Embedded Framework.framework", "Resources")
	case "windows", "linux":
		frameworkResourcesPath = spotifyBasePath

View on GitHub (pinned to 1f13f73616)

Solutions

  1. Install the standard desktop Spotify client from spotify.com (not the Microsoft Store version)
  2. Correct the spotify_path in config-xpui.ini to the folder containing spotify.exe/spotify.dll
  3. Reinstall Spotify if it was uninstalled or moved, then re-run spicetify
  4. Verify the files exist: check <spotify_path>/spotify.exe manually

Example fix

// before (config-xpui.ini, wrong dir)
spotify_path = C:\Users\me\AppData\Local\Microsoft\WindowsApps
// after
spotify_path = C:\Users\me\AppData\Roaming\Spotify
Defensive patterns

Strategy: validation

Validate before calling

spotifyPath := cfg.Get("Preprocess", "spotify_path")
for _, f := range []string{"spotify.dll", "spotify.exe"} {
    if _, err := os.Stat(filepath.Join(spotifyPath, f)); err == nil {
        break
    }
    return fmt.Errorf("%s not found in %s; fix spotify_path or install desktop Spotify", f, spotifyPath)
}

Try / catch

// spicetify fatals internally (utils.Fatal); wrap at process level:
out, err := exec.Command("spicetify", "apply").CombinedOutput()
if err != nil && strings.Contains(string(out), "missing Spotify binaries") {
    // fix spotify_path / reinstall Spotify before retrying
}

Prevention

When it happens

Trigger: Running `spicetify apply`/`preprocess` on Windows when os.Stat fails for both spotifyBasePath/spotify.dll and spotifyBasePath/spotify.exe — Spotify not installed, installed per-user vs per-machine mismatch, or a Microsoft Store (WindowsApps) installation whose files aren't at spotifyBasePath.

Common situations: Spotify installed from Microsoft Store instead of the standard installer; Spotify uninstalled or moved after spicetify config was created; a SPOTIFY_PATH env/config pointing at the wrong directory; corporate machines where install location differs.


AI-assisted analysis of spicetify/cli@1f13f73616 (2026-08-31). Data as JSON: /api/errors/8a2d2656d23b692f. Report an issue: GitHub.