{"record":{"id":"676ee8429c4f8a7e","repo":"BoundaryML/baml","slug":"enum-does-not-have-a-value","errorCode":null,"errorMessage":"Enum {} does not have a value: {}","messagePattern":"Enum (.+?) does not have a value: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"engine/baml-runtime/src/internal/prompt_renderer/render_output_format.rs","lineNumber":191,"sourceCode":"    enum_name: &str,\n    value_name: &str,\n    enum_walker: &Result<EnumWalker<'_>>,\n    overrides: &Option<&RuntimeEnumOverride>,\n    ctx: &RuntimeContext,\n) -> Result<Option<(Name, Option<String>)>> {\n    if enum_walker.is_err() && overrides.is_none() {\n        anyhow::bail!(\"Enum {} does not exist\", enum_name);\n    }\n\n    let value_walker = match enum_walker {\n        Ok(e) => e.find_value(value_name),\n        Err(_) => None,\n    };\n\n    let value_overrides = overrides.map(|o| o.values.get(value_name)).flatten();\n\n    if value_overrides.is_none() && value_walker.is_none() {\n        anyhow::bail!(\"Enum {} does not have a value: {}\", enum_name, value_name);\n    }\n\n    let mut skip = OverridableValue::Unset;\n    let mut alias = OverridableValue::Unset;\n    let mut desc = OverridableValue::Unset;\n    if let Some(attrs) = value_overrides {\n        match attrs.skip {\n            Some(true) => return Ok(None),\n            Some(false) => skip = OverridableValue::Set(false),\n            None => {}\n        }\n\n        alias = OverridableValue::<String>::from(attrs.alias.as_ref());\n        desc = OverridableValue::<String>::from(attrs.meta.get(\"description\"));\n    }\n\n    let eval_ctx = ctx.eval_ctx(false);\n    if let Some(value) = value_walker {","sourceCodeStart":173,"sourceCodeEnd":209,"githubUrl":"https://github.com/BoundaryML/baml/blob/bd85ce9dee1463ff04d27efd20531013a4ff46c1/engine/baml-runtime/src/internal/prompt_renderer/render_output_format.rs#L173-L209","documentation":"Thrown by find_enum_value when the enum itself resolves (or is overridden) but the specific value_name being looked up exists neither in the enum's IR values nor in the override's values map. The renderer cannot render a symbol/value that the schema never declared.","triggerScenarios":"A class field, enum alias, or test override references an enum member name like Category.Sale that is not one of the declared values and not present in RuntimeEnumOverride.values.","commonSituations":"Misspelled enum member (e.g. SALE vs Sale); a member was removed in a schema refactor while prompts/tests still reference it; providing an override enum without all needed values.","solutions":["Add the missing value to the enum declaration in the .baml file.","Fix the member name spelling to match the declared enum values exactly (names are case-sensitive).","If overriding at runtime, include the value in the RuntimeEnumOverride.values map.","Search the codebase for stale references to a removed enum member."],"exampleFix":"// before (baml)\nenum Category { A B }\n// field uses Category.Sale\n// after\nenum Category { A B Sale }","handlingStrategy":"validation","validationCode":"// verify the enum value exists before referencing it\nlet values = enum_walker.values().iter().map(|v| v.name()).collect::<Vec<_>>();\nassert!(values.contains(&value_name), \"{} not in {:?}\", value_name, values);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use editor LSP/baml-cli check for schema-time validation of enum members.","Search-and-verify renamed enum members across .baml files and tests.","Keep runtime override value sets in sync with the declared enum."],"tags":["baml","schema","enum-value","missing-definition"],"backgroundTag":"invalid-enum-value","analyzedSha":"bd85ce9dee1463ff04d27efd20531013a4ff46c1","analyzedAt":"2026-09-12T03:38:25.718Z","contentChangedAt":"2026-09-12T03:38:25.718Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}