{"record":{"id":"809e6495960a9fcf","repo":"BoundaryML/baml","slug":"uses-reserved-table-baml-codegen-remove-it-because-baml","errorCode":null,"errorMessage":"{} uses reserved table `[__baml_codegen]`; remove it because `baml generate` owns generated-bytecode metadata.","messagePattern":"(.+?) uses reserved table `\\[__baml_codegen\\]`; remove it because `baml generate` owns generated-bytecode metadata\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"baml_language/crates/baml_cli/src/generate.rs","lineNumber":595,"sourceCode":"            reporter.abandon();\n            crate::reporter::print_error(\"no files generated (no supported generators found)\");\n            return Ok(crate::ExitCode::Other);\n        }\n\n        reporter.finish(\"Finished\", format!(\"generated {total_files} file(s)\"));\n        Ok(crate::ExitCode::Success)\n    }\n}\n\nfn build_embedded_baml_toml(project_root: &Path) -> Result<String> {\n    let path = project_root.join(\"baml.toml\");\n    let content = std::fs::read_to_string(&path)\n        .with_context(|| format!(\"failed to read {}\", path.display()))?;\n    let document = content\n        .parse::<DocumentMut>()\n        .with_context(|| format!(\"failed to parse {}\", path.display()))?;\n    if document.contains_key(\"__baml_codegen\") {\n        anyhow::bail!(\n            \"{} uses reserved table `[__baml_codegen]`; remove it because `baml generate` owns generated-bytecode metadata.\",\n            path.display()\n        );\n    }\n\n    let mut embedded = content;\n    if !embedded.ends_with('\\n') {\n        embedded.push('\\n');\n    }\n    embedded.push_str(\n        \"\\n[__baml_codegen]\\nmetadata_version = 1\\n\\n[__baml_codegen.toolchain]\\nversion = \",\n    );\n    embedded.push_str(&format!(\"{:?}\", baml_version::CANONICAL_VERSION));\n    embedded.push('\\n');\n    Ok(embedded)\n}\n\n/// Pseudo [`FileId`] for `baml.toml`. The manifest isn't a salsa source","sourceCodeStart":577,"sourceCodeEnd":613,"githubUrl":"https://github.com/BoundaryML/baml/blob/bd85ce9dee1463ff04d27efd20531013a4ff46c1/baml_language/crates/baml_cli/src/generate.rs#L577-L613","documentation":"When embedding the project's baml.toml into generated bytecode, `build_embedded_baml_toml` rejects any baml.toml that defines a `[__baml_codegen]` table, because `baml generate` reserves and owns that table for generated-bytecode metadata. User-authored configs must not use it.","triggerScenarios":"Running `baml generate` (or tests exercising embedded manifests) against a project whose baml.toml literally contains a `[__baml_codegen]` table, either hand-written or left over from a previous generation flow.","commonSituations":"A developer copied a generated baml.toml back into source control, or manually edited generated output and reintroduced the reserved table.","solutions":["Remove the `[__baml_codegen]` table (and its keys) from baml.toml","Re-run `baml generate` so the CLI regenerates its owned metadata","Keep the source baml.toml out of any flow that copies generated output over it"],"exampleFix":"// before (baml.toml)\n[__baml_codegen]\nversion = 1\n\n// after (baml.toml)\n# table removed; baml generate owns [__baml_codegen]","handlingStrategy":"validation","validationCode":"let doc = std::fs::read_to_string(\"baml.toml\")?.parse::<toml_edit::DocumentMut>()?;\nassert!(!doc.contains_key(\"__baml_codegen\"), \"remove reserved [__baml_codegen] table from source baml.toml\");","typeGuard":null,"tryCatchPattern":"match result {\n    Err(e) if e.to_string().contains(\"__baml_codegen\") => {\n        eprintln!(\"Strip the reserved [__baml_codegen] table from baml.toml and regenerate.\");\n    }\n    other => other?,\n}","preventionTips":["Never check generated baml.toml output back into your source project","Add a lint/pre-commit check for the __baml_codegen key in source configs","Keep generated artifacts in ignored output directories"],"tags":["config","toml","cli"],"backgroundTag":"reserved-config-key","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"}