{"record":{"id":"1685d0e229f8e30b","repo":"jdx/mise","slug":"no-matching-swiftpm-artifact-bundle-found-for-1685d0","errorCode":null,"errorMessage":"No matching SwiftPM artifact bundle found for {}, but spm.artifactbundle_only is set","messagePattern":"No matching SwiftPM artifact bundle found for (.+?), but spm\\.artifactbundle_only is set","errorType":"exception","errorClass":"eyre::Report","httpStatus":null,"severity":"error","filePath":"src/backend/spm.rs","lineNumber":286,"sourceCode":"                .try_install_artifactbundle(\n                    ctx,\n                    &mut tv,\n                    &provider,\n                    &repo,\n                    revision.as_str(),\n                    &opts,\n                )\n                .await\n            {\n                Ok(true) => return Ok(tv),\n                Ok(false) if artifactbundle_required => {\n                    bail!(\n                        \"No matching SwiftPM artifact bundle found for {}\",\n                        repo.shorthand\n                    );\n                }\n                Ok(false) if Settings::get().spm.artifactbundle_only => {\n                    bail!(\n                        \"No matching SwiftPM artifact bundle found for {}, but spm.artifactbundle_only is set\",\n                        repo.shorthand\n                    );\n                }\n                Ok(false) => {}\n                Err(err) if artifactbundle_required => return Err(err),\n                Err(err) if Settings::get().spm.artifactbundle_only => return Err(err),\n                Err(err) => {\n                    debug!(\n                        \"SwiftPM artifact bundle install failed, falling back to source build: {err:?}\"\n                    );\n                }\n            }\n        }\n\n        self.install_from_source(ctx, &tv, &repo, &revision, install_command.as_deref())\n            .await?;\n","sourceCodeStart":268,"sourceCodeEnd":304,"githubUrl":"https://github.com/jdx/mise/blob/6f52dcdf99e282ef7a7db68c81301fa4618d0f79/src/backend/spm.rs#L268-L304","documentation":"Same no-match condition as the required-mode error, but here the reason source build is forbidden is the global `spm.artifactbundle_only = true` setting in settings. mise refuses to compile from source because the user explicitly restricted spm installs to prebuilt bundles.","triggerScenarios":"Setting `[settings.spm] artifactbundle_only = true` in mise.toml or config, then installing an spm tool whose selected release has no artifact bundle asset for the platform.","commonSituations":"Teams disabling source builds to keep CI fast/offline, then hitting a package (or platform, e.g. Linux where bundles are macOS-only) with no prebuilt bundle.","solutions":["Pick a version of the package that ships an .artifactbundle.zip for your platform","Set an explicit `artifactbundle_asset` if the bundle exists but is not auto-selected (e.g. multiple bundles)","Relax the global setting: remove `spm.artifactbundle_only` or scope it per-project where bundles actually exist"],"exampleFix":"# before\n[settings.spm]\nartifactbundle_only = true\n\n# after\n[settings.spm]\n# artifactbundle_only removed; source build allowed as fallback","handlingStrategy":"fallback","validationCode":"mise settings get spm.artifactbundle_only # know when source builds are globally forbidden","typeGuard":null,"tryCatchPattern":"mise install spm:owner/repo@v1 || mise settings unset spm.artifactbundle_only && mise install spm:owner/repo@v1","preventionTips":["Only enable spm.artifactbundle_only where every pinned spm tool ships bundles","Maintain a per-project matrix of which spm tools have prebuilt bundles","Prefer per-tool artifactbundle = true over the global-only setting for heterogeneous sets"],"tags":["spm","swift","settings","release-assets","mise-toml"],"backgroundTag":"missing-release-asset","analyzedSha":"6f52dcdf99e282ef7a7db68c81301fa4618d0f79","analyzedAt":"2026-08-22T10:14:23.840Z","schemaVersion":2},"datasetVersion":"2026-08-30T08:17:16.595Z"}