{"record":{"id":"f5d9d00384dd7a51","repo":"jdx/mise","slug":"backend-does-not-support-version-order","errorCode":null,"errorMessage":"{} backend does not support version_order","messagePattern":"(.+?) backend does not support version_order","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/backend/mod.rs","lineNumber":4099,"sourceCode":"    /// (`1.0.0-rc1`, `1.0.0-dev.5`, ...). Callers that have opted into\n    /// pre-releases pass `false` to keep those tags in the match set.\n    fn fuzzy_match_filter(\n        &self,\n        versions: Vec<String>,\n        query: &str,\n        filter_prereleases: bool,\n    ) -> Vec<String> {\n        fuzzy_match_versions(versions, query, filter_prereleases)\n    }\n\n    /// Select the ordering policy supported by this backend.\n    ///\n    /// Backends must opt in explicitly before `version_order` can affect remote\n    /// version listing or resolution. This keeps opaque version schemes\n    /// source-ordered by default.\n    fn version_order(&self, opts: &ToolVersionOptions) -> eyre::Result<VersionOrder> {\n        if opts.opts.contains_key(\"version_order\") {\n            bail!(\"{} backend does not support version_order\", self.get_type())\n        }\n        Ok(VersionOrder::Source)\n    }\n\n    /// The key of the remote-version cache entry these listing options select.\n    async fn remote_version_cache_context_for(\n        &self,\n        config: &Arc<Config>,\n        listing_opts: &ToolVersionOptions,\n        has_local_version_listing_override: bool,\n    ) -> eyre::Result<Option<String>> {\n        // The listing-relevant options shape the cached list, so they belong in its key.\n        // Only local overrides count: a registry-supplied value is identical for everyone, so\n        // one entry is correct for it, and leaving it out keeps the shared versions host\n        // available for the default case.\n        let opt_context = has_local_version_listing_override.then(|| {\n            listing_option_digest(listing_opts, self.remote_version_listing_tool_option_keys())\n        });","sourceCodeStart":4081,"sourceCodeEnd":4117,"githubUrl":"https://github.com/jdx/mise/blob/afd2eddd3a50c16190efc1c7e94404b48f72af57/src/backend/mod.rs#L4081-L4117","documentation":"The default `Backend::version_order` implementation returns source ordering and only permits that; any backend that has not opted in to custom ordering rejects a user-supplied `version_order` option outright. This protects tools with opaque, non-semver version schemes from being reordered incorrectly.","triggerScenarios":"Setting `version_order = \"semver\"` (or \"source\") in a tool's options for a backend that does not override `version_order`, e.g. in mise.toml tool settings or `mise ls-remote --version-order` style usage against an unsupported backend.","commonSituations":"Copy-pasting a version_order option that works for one backend (like a core plugin) to another backend (asdf/vfox/github backend); assuming all backends support semver sorting of versions like `latest`, `lts/*`.","solutions":["Remove the `version_order` option from that tool's configuration.","Use a backend that explicitly supports version_order if semver sorting is required.","Request upstream support by implementing `version_order` in the backend if it is your own plugin/backend."],"exampleFix":"// before (mise.toml)\n[tools]\n\"github:owner/repo\" = { version = \"latest\", version_order = \"semver\" }\n// after\n[tools]\n\"github:owner/repo\" = \"latest\"","handlingStrategy":"validation","validationCode":"// before setting the option, check backend support in mise docs\n// or defensively strip the option per backend:\nconst SUPPORTS_VERSION_ORDER = new Set([\"node\", \"python\"]); // example\nif (!SUPPORTS_VERSION_ORDER.has(backend)) delete toolOpts.version_order;","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Never copy version_order options between different backends.","Treat version_order as a backend-specific opt-in, not a global knob.","Keep opaque-version tools (asdf/vfox plugins) on default source ordering."],"tags":["tool-options","version-order","backend"],"backgroundTag":"unsupported-operation","analyzedSha":"afd2eddd3a50c16190efc1c7e94404b48f72af57","analyzedAt":"2026-09-09T01:38:25.179Z","contentChangedAt":"2026-09-09T01:38:25.179Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}