jdx/mise · error
No matching SwiftPM artifact bundle found for
Error message
No matching SwiftPM artifact bundle found for {} What it means
The SwiftPM backend tried to install a release version via a prebuilt SwiftPM artifact bundle, but no bundle asset matching the platform/triple was found in the release assets, and artifact bundles were required (spm.artifactbundle_only or equivalent settings), so mise cannot proceed and bails instead of falling back to a source build.
Solutions
- Check the release's assets on the GitHub repo for a bundle matching your platform triple
- Remove spm.artifactbundle_only = true from settings so mise can build from source
- Pin an older/newer version whose release includes an artifact bundle for your platform
- Request or contribute an artifact bundle for your platform upstream
Example fix
// mise config // before [settings.spm] artifactbundle_only = true // after [settings.spm] # allow source builds when no bundle exists artifactbundle_only = false
Defensive patterns
Strategy: fallback
Validate before calling
// before pinning, check release assets for your platform gh release view <tag> -R <owner>/<repo> --json assets -q '.assets[].name' | grep artifactbundle
Prevention
- Don't enable artifactbundle_only unless all target platforms have bundles
- Verify release assets per platform before pinning versions
- Keep source-build fallback enabled for portability
When it happens
Trigger: install_version_ calls try_install_artifactbundle which returns Ok(false) (no matching bundle variant) while artifactbundle_required is true — i.e. the tool config mandates artifact bundles and the GitHub release has no .artifactbundle.zip asset for the current OS/arch.
Common situations: Installing a SwiftPM tool on an unusual platform (e.g. linux-aarch64) where the project only publishes macOS bundles; a release that ships no artifact bundle at all while settings.toml sets spm.artifactbundle_only = true.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- No matching SwiftPM artifact bundle found for
- artifact bundle executable does not exist
- multiple SwiftPM artifact bundles found
- artifactbundle_asset must end with .artifactbundle.zip, got
- artifactbundle = false conflicts with…
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/4b69839985808dde.
Report an issue: GitHub.
Appendix: source
Thrown at src/backend/spm.rs:280
artifactbundle_mode,
Settings::get().spm.artifactbundle_only,
&tv.version,
)? {
let artifactbundle_required = opts.requires_artifactbundle(artifactbundle_mode);
match self
.try_install_artifactbundle(
ctx,
&mut tv,
&provider,
&repo,
revision.as_str(),
&opts,
)
.await
{
Ok(true) => return Ok(tv),
Ok(false) if artifactbundle_required => {
bail!(
"No matching SwiftPM artifact bundle found for {}",
repo.shorthand
);
}
Ok(false) if Settings::get().spm.artifactbundle_only => {
bail!(
"No matching SwiftPM artifact bundle found for {}, but spm.artifactbundle_only is set",
repo.shorthand
);
}
Ok(false) => {}
Err(err) if artifactbundle_required => return Err(err),
Err(err) if Settings::get().spm.artifactbundle_only => return Err(err),
Err(err) => {
debug!(
"SwiftPM artifact bundle install failed, falling back to source build: {err:?}"
);
}View on GitHub (pinned to 533346cc37)