jdx/mise · error

unsupported task cache store version {}; expected {}

Error message

unsupported task cache store version {}; expected {}

What it means

After composing the local (and optional remote) task cache stores, mise asserts the store's reported version equals TASK_CACHE_STORE_VERSION (currently 1, defined in task_cache_store.rs). A mismatch means the on-disk/remote store layout was written by an incompatible store implementation relative to this mise build.

Source

Thrown at src/task/task_cache.rs:431

                    base_url,
                    namespace,
                    token: settings.task.cache.remote_token.clone(),
                    token_file: settings.task.cache.remote_token_file.clone(),
                    oidc_audience: settings.task.cache.remote_oidc_audience.clone(),
                    connect_timeout: settings.http_timeout(),
                    read_timeout: settings.http_timeout(),
                    download_timeout: settings.http_download_timeout(),
                    retries: settings.http_retries(),
                },
                staging_dir: cache_dir.join("remote"),
                mode,
            })
        } else {
            None
        };
        let store = compose_task_cache_stores(local, remote)?;
        if store.version() != TASK_CACHE_STORE_VERSION {
            bail!(
                "unsupported task cache store version {}; expected {}",
                store.version(),
                TASK_CACHE_STORE_VERSION
            );
        }
        Ok(TaskArtifactCache {
            root,
            cache_dir,
            store,
            key,
            action: encoded,
            explanation,
            state_path,
            limits,
        })
    }
}

View on GitHub (pinned to 6f52dcdf99)

Solutions

  1. Align mise versions everywhere that shares the cache (upgrade the older side)
  2. Clear the task cache directory (default under the OS cache dir, 'task-artifacts') so a fresh store is created
  3. Point the remote cache (settings task.cache_dir / remote config) at a per-version directory or endpoint
  4. If it persists on matching versions, report it — the version constant should never drift within one build

Example fix

# shell — before: mixed mise versions share ~/.cache/task-artifacts

# after: clear and repin
rm -rf "${XDG_CACHE_HOME:-$HOME/.cache}/task-artifacts"
mise use -g mise@2026.1.6   # pin one version across CI and devs
Defensive patterns

Strategy: fallback

Validate before calling

mise --version   # confirm the version before touching a shared cache
du -sh "${XDG_CACHE_HOME:-$HOME/.cache}/task-artifacts" 2>/dev/null

Try / catch

On this error, bypass the cache for the run (disable the cache setting or clear the dir) and complete the build uncached, then reconcile versions afterward.

Prevention

When it happens

Trigger: Sharing one cache directory or remote cache endpoint between different mise versions whose store protocols differ; downgrading mise after a newer version migrated the store; a remote cache server implementing a different store version.

Common situations: CI fleet pinning different mise versions but sharing a cache volume or HTTPS remote; developers on stable and colleagues on a bleeding-edge build; rolling back mise after an upgrade wrote a new-format store.

Related errors


AI-assisted analysis of jdx/mise@6f52dcdf99 (2026-08-22). Data as JSON: /api/errors/8d87799445a961f9. Report an issue: GitHub.