astrid-runtime/astrid · error

signed release metadata does not support target '{target}'

Error message

signed release metadata does not support target '{target}'

What it means

resolve_target_blake3 maps a Rust target triple to the appropriate signed-release extension asset (linux or windows). If the target is neither one of the handled Linux targets nor a Windows target handled by the WINDOWS_TARGETS path, the signed channel metadata has no asset mapping and the function bails with this message.

Source

Thrown at crates/astrid-cli/src/commands/update_channel.rs:414

        return Ok(pointer.target(target)?.blake3.clone());
    }
    let (extension_asset, extension_kind, extension_targets, label) =
        if MUSL_TARGETS.contains(&target) {
            (
                musl_metadata_asset(pointer.version()),
                "astrid-release-musl-extension",
                MUSL_TARGETS,
                "musl",
            )
        } else if WINDOWS_TARGETS.contains(&target) {
            (
                windows_metadata_asset(pointer.version()),
                "astrid-release-windows-extension",
                WINDOWS_TARGETS,
                "Windows",
            )
        } else {
            bail!("signed release metadata does not support target '{target}'");
        };
    let extension_url = exact_asset_url(release, &extension_asset)?.to_owned();
    let extension_bundle_url =
        exact_asset_url(release, &format!("{extension_asset}.sigstore.json"))?.to_owned();
    let extension = source
        .download(
            &extension_url,
            MAX_MANIFEST_BYTES,
            &format!("immutable {label} release metadata"),
        )
        .await?;
    let extension_bundle = source
        .download(
            &extension_bundle_url,
            MAX_BUNDLE_BYTES,
            &format!("{label} release metadata authentication bundle"),
        )
        .await?;

View on GitHub (pinned to affd8760f4)

Solutions

  1. Add the new target triple and its extension asset mapping to the target tables (WINDOWS_TARGETS or the Linux branch) in the release metadata code
  2. Verify the running target triple matches a supported one (rustc -vV / std::env::consts) before attempting the update
  3. Build the extension asset for the missing target and publish it with signed release metadata
  4. Fall back to manual download instructions for unsupported targets

Example fix

// before
} else {
    bail!("signed release metadata does not support target '{target}'");
};
// after
} else if LINUX_AARCH64_TARGETS.contains(&target.as_str()) {
    linux_metadata_asset(pointer.version())
} else {
    bail!("signed release metadata does not support target '{target}'");
};
Defensive patterns

Strategy: fallback

Validate before calling

fn target_supported(t: &str, windows: &[&str], linux: &[&str]) -> bool { windows.contains(&t) || linux.contains(&t) }

Try / catch

match resolve_target_blake3(&source, &pointer, &target) {
    Ok(plan) => plan,
    Err(_) => return print_manual_update_instructions(&target),
}

Prevention

When it happens

Trigger: Calling resolve_signed_channel for an update on a target triple not covered by the metadata's target tables, e.g. freebsd, a musl variant, or an aarch64-windows target absent from WINDOWS_TARGETS — the else branch at update_channel.rs:414 fires.

Common situations: Running the updater on an unsupported platform; a typo'd or custom CARGO_TARGET_TRIPLE; a newly released target not yet added to the release metadata tables; CI cross-compilation to an unlisted triple.

Understand the failure class

Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.

Related errors


AI-assisted analysis of astrid-runtime/astrid@affd8760f4 (2026-09-09). Data as JSON: /api/errors/cdd301946c0b6cda. Report an issue: GitHub.