{"record":{"id":"87a646459b09d5e3","repo":"BoundaryML/baml","slug":"enum-not-found","errorCode":null,"errorMessage":"Enum {} not found","messagePattern":"Enum (.+?) not found","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"engine/baml-runtime/src/internal/prompt_renderer/scoped_ir.rs","lineNumber":55,"sourceCode":"        let class = self.ir.find_class(class_name);\n\n        match (class, class_override) {\n            (Err(_), None) => Err(anyhow::anyhow!(\"Class {} not found\", class_name)),\n            (Ok(class), None) => Ok(FindResult::OnlyIr(class)),\n            (Err(_), Some(class_override)) => Ok(FindResult::OnlyDynamic(class_override)),\n            (Ok(class), Some(class_override)) => Ok(FindResult::Overriden(class, class_override)),\n        }\n    }\n\n    fn find_enum(\n        &self,\n        enum_name: &str,\n    ) -> Result<FindResult<internal_baml_core::ir::EnumWalker<'ir>, &RuntimeEnumOverride>> {\n        let enum_override = self.ctx.enum_overrides.get(enum_name);\n        let r#enum = self.ir.find_enum(enum_name);\n\n        match (r#enum, enum_override) {\n            (Err(_), None) => Err(anyhow::anyhow!(\"Enum {} not found\", enum_name)),\n            (Ok(r#enum), None) => Ok(FindResult::OnlyIr(r#enum)),\n            (Err(_), Some(enum_override)) => Ok(FindResult::OnlyDynamic(enum_override)),\n            (Ok(r#enum), Some(enum_override)) => Ok(FindResult::Overriden(r#enum, enum_override)),\n        }\n    }\n}\n\nimpl IRSemanticStreamingHelper for ScopedIr<'_> {\n    fn class_streaming_needed_fields(\n        &self,\n        class_name: &str,\n    ) -> Result<std::collections::HashSet<String>> {\n        let class_type = &self.find_class(class_name)?;\n        let result = match class_type {\n            FindResult::OnlyIr(cls) | FindResult::Overriden(cls, _) => cls\n                .walk_fields()\n                .filter_map(|field| {\n                    if field.streaming_behavior().needed {","sourceCodeStart":37,"sourceCodeEnd":73,"githubUrl":"https://github.com/BoundaryML/baml/blob/bd85ce9dee1463ff04d27efd20531013a4ff46c1/engine/baml-runtime/src/internal/prompt_renderer/scoped_ir.rs#L37-L73","documentation":"find_enum in ScopedIR fails when the requested enum name is absent from the IR and no RuntimeEnumOverride exists. Same resolution model as find_class: only a static BAML definition or a dynamic override satisfies the lookup.","triggerScenarios":"Prompt/output rendering resolves an enum type name that no .baml file declares and RuntimeContext has no enum_overrides entry for it.","commonSituations":"Misspelled enum name; enum renamed/removed; enum file outside baml_src; using dynamic schema overrides but forgetting to register the enum override.","solutions":["Declare the enum in a .baml file or correct the spelling of its name.","Provide a RuntimeEnumOverride in RuntimeContext.enum_overrides for dynamically defined enums.","Regenerate the BAML client so the IR includes recent schema changes.","Confirm the enum's file is included in the BAML source directory."],"exampleFix":"// before (baml)\nclass Output {\n  cat Catgory\n}\n// after\nenum Category { A B }\nclass Output {\n  cat Category\n}","handlingStrategy":"try-catch","validationCode":"if scoped.find_enum(enum_name).is_err() {\n    eprintln!(\"Enum {} missing from BAML schema\", enum_name);\n}","typeGuard":"fn enum_resolves(scoped: &ScopedIr, name: &str) -> bool {\n    scoped.find_enum(name).is_ok()\n}","tryCatchPattern":"let ew = scoped.find_enum(enum_name)\n    .with_context(|| format!(\"Check .baml files for enum {}\", enum_name))?;","preventionTips":["Run baml-cli check as a pre-commit hook.","Rename enums with tooling so all references update together.","Register RuntimeEnumOverrides for any dynamically supplied enums."],"tags":["baml","schema","enum","not-found"],"backgroundTag":"resource-not-found","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"}