jdx/mise · error
artifactbundle = false conflicts with…
Error message
artifactbundle = false conflicts with spm.artifactbundle_only
What it means
should_try_artifactbundle validates option combinations: if a tool entry sets artifactbundle = false (source-only) while the global setting spm.artifactbundle_only is true, the requirements are contradictory and mise refuses to guess.
Solutions
- Remove artifactbundle = false from the tool entry, or
- Set spm.artifactbundle_only = false so the per-tool override wins
- Pick one policy: either bundles-only globally or per-tool opt-outs
Example fix
// before (mise.toml) [tools.swiftlint] version = '0.54.0' artifactbundle = false # plus settings: spm.artifactbundle_only = true // after [tools.swiftlint] version = '0.54.0' # artifactbundle = false removed; obey global bundles-only policy
Defensive patterns
Strategy: validation
Validate before calling
// search configs for conflicting settings mise settings get spm.artifactbundle_only grep -n 'artifactbundle' mise.toml .config/mise.toml 2>/dev/null
Prevention
- Decide bundle policy at one level (global OR per-tool), not both
- Audit shared settings files when adding per-tool artifactbundle overrides
When it happens
Trigger: Calling should_try_artifactbundle with ArtifactBundleMode::SourceOnly while artifactbundle_only is true — i.e. a mise tool config with [tool].artifactbundle = false for a SwiftPM tool plus settings spm.artifactbundle_only = true.
Common situations: A project's mise.toml disables artifact bundles for one tool while a global/company setting mandates artifact bundles for all SwiftPM tools.
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
- artifactbundle_asset must end with .artifactbundle.zip, got
- a repository preview directory requires a dry run
- action prediction payload is too large
- agent ' ' `start_calendar_interval. ` must be between and
- agent ' ' `start_calendar_interval` must set at least one…
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/18dde676d779f798.
Report an issue: GitHub.
Appendix: source
Thrown at src/backend/spm.rs:647
fn package_revision(tv: &ToolVersion) -> Option<PackageRevision> {
match &tv.request {
ToolRequest::Ref { ref_, ref_type, .. } if matches!(ref_type.as_str(), "ref" | "rev") => {
Some(PackageRevision::Git(ref_.clone()))
}
_ => None,
}
}
fn should_try_artifactbundle(
revision: &PackageRevision,
opts: &SpmOptions<'_>,
mode: ArtifactBundleMode,
artifactbundle_only: bool,
display_version: &str,
) -> eyre::Result<bool> {
if mode == ArtifactBundleMode::SourceOnly && artifactbundle_only {
bail!("artifactbundle = false conflicts with spm.artifactbundle_only");
}
if revision.is_git_revision() && (opts.requires_artifactbundle(mode) || artifactbundle_only) {
bail!(
"SwiftPM artifact bundles require a release version; {display_version} selects a Git revision and must be built from source"
);
}
Ok(!revision.is_git_revision() && mode != ArtifactBundleMode::SourceOnly)
}
fn with_install_env(mut command: Expression, tv: &ToolVersion) -> Expression {
for (key, value) in tv.install_env() {
command = match value.into_string() {
Some(value) => command.env(key, value),
None => command.env_remove(key),
};
}
command
}View on GitHub (pinned to 533346cc37)