tonhowtf/omniget · error

dentro do Flatpak o Spicetify nao consegue alterar o…

Error message

dentro do Flatpak o Spicetify nao consegue alterar o Spotify do sistema

What it means

`install` refuses to download/install the Spicetify CLI when the app itself is running inside a Flatpak sandbox. A sandboxed app cannot properly modify the host's Spotify installation, so the operation is blocked up-front with this explanatory error rather than failing confusingly later.

Solutions

  1. Install the app via a non-sandboxed method (native package: .deb/.rpm/AUR, or a non-Flatpak build) to manage Spicetify
  2. Install and manage spicetify-cli directly on the host: `curl -fsSL https://raw.githubusercontent.com/spicetify/spicetify-cli/master/install.sh | sh`
  3. If the Spicetify CLI already exists on the host, point the app at it instead of triggering a fresh install inside the sandbox
  4. Grant the Flatpak host access (`flatpak override --user --filesystem=host`) — may help detection but does not fully enable spicetify's host modifications

Example fix

// before
let path = install().await?; // hard error in Flatpak
// after
if dependencies::is_flatpak() {
    ui::show_hint("Use the native package or install spicetify on the host manually.");
    return Ok(PathBuf::new()); // degrade gracefully instead of erroring
}
let path = install().await?;
Defensive patterns

Strategy: fallback

Validate before calling

// before calling install():
if dependencies::is_flatpak() {
    eprintln!("Running under Flatpak — spicetify install unavailable; use native package.");
    return;
}

Try / catch

match install().await {
    Err(e) if e.to_string().contains("Flatpak") => {
        show_hint("Install via native package or run spicetify on the host manually.");
    }
    other => other,
}

Prevention

When it happens

Trigger: Calling `install()` (via `instala_e_le_status`) when `dependencies::is_flatpak()` is true — i.e. the app was installed as a Flatpak and the user tries to manage the system Spotify through it.

Common situations: User installed the app from Flathub and attempts to install Spicetify; Flatpak sandbox lacks host filesystem/access to Spotify; user expects Spicetify features to work in the sandboxed build.

Understand the failure class

Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.

Related errors


AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12). Data as JSON: /api/errors/2c4fdb01db5e1219. Report an issue: GitHub.

Appendix: source

Thrown at src-tauri/omniget-core/src/core/spicetify.rs:511

        .unpack(dest)
        .map_err(|e| anyhow!("tar.gz invalido: {}", e))?;
    Ok(())
}

#[cfg(unix)]
fn make_executable(path: &Path) {
    use std::os::unix::fs::PermissionsExt;
    let _ = std::fs::set_permissions(path, std::fs::Permissions::from_mode(0o755));
}

#[cfg(not(unix))]
fn make_executable(_path: &Path) {}

/// Baixa o último release do CLI para `<app_data>/bin/spicetify-cli/`.
/// A pasta antiga só sai depois que a nova está inteira no disco.
pub async fn install() -> anyhow::Result<PathBuf> {
    if dependencies::is_flatpak() {
        return Err(anyhow!(
            "dentro do Flatpak o Spicetify nao consegue alterar o Spotify do sistema"
        ));
    }
    let suffix = cli_asset_suffix()?;
    let dir = managed_dir().ok_or_else(|| anyhow!("Could not determine data directory"))?;
    let client = github_client()?;
    let asset = latest_asset(&client, CLI_REPO, |n| n.ends_with(suffix)).await?;
    tracing::info!("[spicetify] baixando {} ({})", asset.name, asset.tag);
    let data = download_verified(&client, &asset).await?;

    let staging = dir.with_extension("new");
    let _ = std::fs::remove_dir_all(&staging);
    std::fs::create_dir_all(&staging)?;
    let is_zip = asset.name.ends_with(".zip");
    let staging_clone = staging.clone();
    tokio::task::spawn_blocking(move || {
        if is_zip {
            unpack_zip(&data, &staging_clone)

View on GitHub (pinned to 8600b91f42)