jdx/mise · error

No matching SwiftPM artifact bundle found for

Error message

No matching SwiftPM artifact bundle found for {}, but spm.artifactbundle_only is set

What it means

Same situation as the plain 'no matching artifact bundle' error, but raised when the user explicitly set spm.artifactbundle_only, making it clear the setting is what forbids the source-build fallback.

Solutions

  1. Set spm.artifactbundle_only = false in settings.toml to permit source builds
  2. Install a version whose release ships an artifact bundle for your platform
  3. Verify the release assets actually contain a *.artifactbundle.zip matching your triple

Example fix

// before
[settings.spm]
artifactbundle_only = true
// after
[settings.spm]
artifactbundle_only = false
Defensive patterns

Strategy: validation

Validate before calling

// confirm the setting and bundle availability together
mise settings get spm.artifactbundle_only
gh release view <tag> -R <owner>/<repo> --json assets -q '.assets[].name' | grep artifactbundle

Prevention

When it happens

Trigger: install_version_: try_install_artifactbundle returns Ok(false) and Settings::get().spm.artifactbundle_only is true, so building from source is disallowed and mise bails immediately.

Common situations: User enabled spm.artifactbundle_only for supply-chain speed/reproducibility, then tries to install a tool or platform combination with no published bundle.

Understand the failure class

Background: Conflicting config options: "cannot be used together" — configuration validation errors across open-source libraries — this error's family across 162 libraries.

Related errors


AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17). Data as JSON: /api/errors/1685d0e229f8e30b. Report an issue: GitHub.

Appendix: source

Thrown at src/backend/spm.rs:286

                .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:?}"
                    );
                }
            }
        }

        self.install_from_source(ctx, &tv, &repo, &revision, install_command.as_deref())
            .await?;

View on GitHub (pinned to 533346cc37)