{"record":{"id":"0388b86dbf1b06a7","repo":"astrid-runtime/astrid","slug":"label-release-metadata-does-not-support-target","errorCode":null,"errorMessage":"{label} release metadata does not support target '{target}'","messagePattern":"(.+?) release metadata does not support target '(.+?)'","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/astrid-cli/src/commands/update_channel.rs","lineNumber":648,"sourceCode":"        pointer,\n        target,\n        \"astrid-release-windows-extension\",\n        WINDOWS_TARGETS,\n        \"Windows\",\n    )\n}\n\n#[allow(clippy::too_many_arguments)]\nfn verify_release_extension(\n    bytes: &[u8],\n    legacy_manifest_bytes: &[u8],\n    pointer: &ChannelPointer,\n    target: &str,\n    expected_kind: &str,\n    expected_targets: &[&str],\n    label: &str,\n) -> anyhow::Result<String> {\n    ensure!(\n        expected_targets.contains(&target),\n        \"{label} release metadata does not support target '{target}'\"\n    );\n    let text = std::str::from_utf8(bytes)\n        .with_context(|| format!(\"{label} release metadata is not UTF-8\"))?;\n    let extension: ReleaseExtension = toml::from_str(text)\n        .with_context(|| format!(\"{label} release metadata is invalid TOML\"))?;\n    ensure!(\n        extension.schema_version == 1\n            && extension.kind == expected_kind\n            && extension.product == PRODUCT\n            && extension.repository == REPOSITORY,\n        \"{label} release metadata identity is invalid\"\n    );\n    canonical_version(&extension.version)?;\n    ensure!(\n        extension.version == pointer.release.version\n            && extension.tag == pointer.release.tag","sourceCodeStart":630,"sourceCodeEnd":666,"githubUrl":"https://github.com/astrid-runtime/astrid/blob/affd8760f44190dbdfbec23403f4c4b642c33112/crates/astrid-cli/src/commands/update_channel.rs#L630-L666","documentation":"The requested target triple is not part of the expected target set for this release extension kind. verify_release_extension checks membership in expected_targets before parsing the extension metadata, so unsupported platform requests fail fast.","triggerScenarios":"verify_musl_extension or verify_windows_extension (via resolve_target_blake3) called with a target triple not present in expected_targets — e.g. requesting a musl extension for a non-musl triple, or a target the release metadata never declared.","commonSituations":"Requesting a windows extension for a linux triple; a target added to the channel but not to the extension's allowed list; misconfigured release metadata from the publisher.","solutions":["Use a target triple listed in the extension's expected_targets","Check whether the correct extension kind (musl vs windows) applies to your platform","Fix the release metadata so it declares support for the target","Choose a different release/channel that supports the target"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if !expected_targets.contains(&target) {\n    eprintln!(\"{label} does not support {target}; allowed: {expected_targets:?}\");\n}","typeGuard":"fn extension_supports(expected: &[&str], target: &str) -> bool {\n    expected.contains(&target)\n}","tryCatchPattern":"if let Err(e) = verify_release_extension(&bytes, &pointer, target, kind, expected, label) {\n    eprintln!(\"unsupported target for this extension: {e}\");\n}","preventionTips":["Match extension kind to platform (musl for musl triples, windows for windows)","Query supported targets from metadata before download","Keep release metadata target lists in sync with channels"],"tags":["target-support","release-metadata","validation"],"backgroundTag":"unsupported-operation","analyzedSha":"affd8760f44190dbdfbec23403f4c4b642c33112","analyzedAt":"2026-09-09T21:28:12.402Z","contentChangedAt":"2026-09-09T21:28:12.402Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}