{"record":{"id":"95776975095046f5","repo":"BoundaryML/baml","slug":"manifest-schema-got-not-supported-max-max-run-baml-self","errorCode":null,"errorMessage":"manifest schema {got} not supported (max {max}); run `baml self-update`","messagePattern":"manifest schema (.+?) not supported \\(max (.+?)\\); run `baml self-update`","errorType":"exception","errorClass":"FetchError","httpStatus":null,"severity":"error","filePath":"baml_language/crates/baml_release/src/lib.rs","lineNumber":87,"sourceCode":"        match self {\n            Product::Toolchain => \"baml-language\",\n            Product::Wrapper => \"baml-wrapper\",\n        }\n    }\n}\n\n#[derive(Debug, thiserror::Error)]\npub enum FetchError {\n    #[error(\"network error fetching {url}: {source}\")]\n    Network { url: String, source: reqwest::Error },\n    #[error(\"HTTP {status} fetching {url}\")]\n    HttpStatus {\n        url: String,\n        status: reqwest::StatusCode,\n    },\n    #[error(\"manifest 404 for version {version} (not released yet?)\")]\n    ManifestNotFound { version: String },\n    #[error(\"manifest schema {got} not supported (max {max}); run `baml self-update`\")]\n    ManifestSchemaTooNew { got: u32, max: u32 },\n    #[error(\"target {target} not built for version {version}\")]\n    TargetNotInManifest { target: String, version: String },\n    #[error(\"sha256 mismatch for {url}: expected {expected}, got {got}\")]\n    ChecksumMismatch {\n        url: String,\n        expected: String,\n        got: String,\n    },\n    #[error(\"archive missing expected binary {name}\")]\n    BinaryNotInArchive { name: String },\n    #[error(\"archive contains unsafe path {path}\")]\n    UnsafeArchivePath { path: String },\n    #[error(\"disk error: {0}\")]\n    Io(#[from] std::io::Error),\n    #[error(\"zip archive error: {0}\")]\n    Zip(#[from] zip::result::ZipError),\n}","sourceCodeStart":69,"sourceCodeEnd":105,"githubUrl":"https://github.com/BoundaryML/baml/blob/bd85ce9dee1463ff04d27efd20531013a4ff46c1/baml_language/crates/baml_release/src/lib.rs#L69-L105","documentation":"FetchError::ManifestSchemaTooNew is thrown by baml_release when a downloaded release manifest declares a schema version greater than the maximum this installed binary supports. This is a forward-compatibility guard: a newer release format cannot be safely parsed by an older CLI. The error explicitly instructs the user to run `baml self-update` to obtain a binary that understands the new schema.","triggerScenarios":"Fetching a release manifest (typically during self-update or tool installation) whose 'schema' field exceeds the max supported by the current code's schema parser.","commonSituations":"The BAML project bumped the manifest schema and you are running an old CLI against the always-current manifest URL; stale binaries in CI; frozen/air-gapped installs pointing at a live manifest.","solutions":["Run `baml self-update` (or reinstall the CLI) to get a binary supporting the new schema","Update the BAML CLI via your package manager (npm/pip/brew) if self-update is unavailable","If you must stay pinned, fetch a manifest URL frozen to your supported schema version (if offered)","Report/inspect: if the schema bump is accidental, check for a recent BAML release announcement"],"exampleFix":"# before (old CLI, new schema)\n$ baml install 0.204.0\nmanifest schema 2 not supported (max 1); run `baml self-update`\n# after\n$ baml self-update\n$ baml install 0.204.0","handlingStrategy":"try-catch","validationCode":"// peek schema before full processing\nlet schema: u32 = peek_manifest_schema(&manifest);\nif schema > MAX_SUPPORTED_SCHEMA {\n    eprintln!(\"manifest schema {schema} too new; update the CLI first\");\n}","typeGuard":"fn is_schema_too_new(e: &FetchError) -> bool {\n    matches!(e, FetchError::ManifestSchemaTooNew { .. })\n}","tryCatchPattern":"match fetch_manifest(url) {\n    Err(FetchError::ManifestSchemaTooNew { got, max }) => {\n        eprintln!(\"manifest schema {got} > supported {max}; run `baml self-update`\");\n        std::process::exit(1);\n    }\n    other => other,\n}","preventionTips":["Keep the BAML CLI reasonably up to date","Pin to schema-frozen manifest URLs in CI if available","Subscribe to BAML release notes for schema bumps","In air-gapped environments, mirror manifests at a pinned schema version"],"tags":["versioning","schema","upgrade"],"backgroundTag":"schema-validation-failed","analyzedSha":"bd85ce9dee1463ff04d27efd20531013a4ff46c1","analyzedAt":"2026-09-12T03:38:25.718Z","contentChangedAt":"2026-09-12T03:38:25.718Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}