{"record":{"id":"c42b61808afdd666","repo":"hasura/graphql-engine","slug":"the-filter-input-model-model-name-cannot-be-fo","errorCode":null,"errorMessage":"the filter input model '{model_name}' cannot be found","messagePattern":"the filter input model '(.+?)' cannot be found","errorType":"validation","errorClass":"AggregateBooleanExpressionError","httpStatus":null,"severity":"error","filePath":"v3/crates/metadata-resolve/src/stages/aggregate_boolean_expressions/types.rs","lineNumber":355,"sourceCode":"    #[error(\n        \"the boolean expression type '{boolean_expression_type}' used in the comparable relationship '{relationship_name}' does not have an object aggregate operand\"\n    )]\n    ComparableRelationshipBooleanExpressionIncorrectOperandType {\n        relationship_name: open_dds::relationships::RelationshipName,\n        boolean_expression_type: Qualified<CustomTypeName>,\n    },\n\n    #[error(\n        \"the object type of the target of the relationship '{relationship_name}' ({relationship_target_object_type}) does not match the operand type of the boolean expression type '{boolean_expression_type}': '{boolean_expression_operand_type}'\"\n    )]\n    ComparableRelationshipBooleanExpressionTypeMismatch {\n        relationship_name: open_dds::relationships::RelationshipName,\n        relationship_target_object_type: Qualified<CustomTypeName>,\n        boolean_expression_type: Qualified<CustomTypeName>,\n        boolean_expression_operand_type: Qualified<CustomTypeName>,\n    },\n\n    #[error(\"the filter input model '{model_name}' cannot be found\")]\n    FilterInputModelNotFound { model_name: Qualified<ModelName> },\n\n    #[error(\n        \"the operand type '{operand_type}' does not match the type of the model '{model_name}': '{model_type}'\"\n    )]\n    FilterInputModelTypeMismatch {\n        operand_type: Qualified<CustomTypeName>,\n        model_name: Qualified<ModelName>,\n        model_type: Qualified<CustomTypeName>,\n    },\n\n    #[error(\n        \"a GraphQL field name conflict exists between the '{name}' {name_source_1} and the '{name}' {name_source_2}. One of these will need to be renamed.\"\n    )]\n    GraphqlNameConflict {\n        name: String,\n        name_source_1: NameSource,\n        name_source_2: NameSource,","sourceCodeStart":337,"sourceCodeEnd":373,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/aggregate_boolean_expressions/types.rs#L337-L373","documentation":"The aggregate boolean expression configuration references a filter input model by qualified name, but no model with that name exists in the metadata. The resolver cannot build the filter input for the boolean expression without that model.","triggerScenarios":"A boolean expression config with a filter_input section naming Qualified<ModelName> that is not defined in the models section of the OpenDD metadata, or a typo/different subgraph in the qualified name.","commonSituations":"Renaming or deleting a model without updating boolean expression filter input references; qualifying the model with the wrong subgraph name; referencing a model defined in a different metadata crate that is not composed in.","solutions":["Verify the exact qualified model name (including subgraph) in the error exists under models in your metadata.","Add the missing model definition if it was removed.","Fix typos or the subgraph qualifier in the filter input model reference."],"exampleFix":"# before\nfilter_input:\n  model_name:\n    name: ArticleFilter   # model does not exist\n# after\nmodels:\n  - name: ArticleFilter\n    ...  # define the model\nfilter_input:\n  model_name:\n    name: ArticleFilter","handlingStrategy":"validation","validationCode":"let model_names: HashSet<_> = metadata.models.iter().map(|m| m.name.clone()).collect();\nfor be in &metadata.boolean_expression_types {\n    if let Some(fi) = &be.filter_input {\n        assert!(model_names.contains(&fi.model_name),\n            \"filter input model {} not found\", fi.model_name);\n    }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["When deleting/renaming models, grep for filter_input references.","Prefer unqualified local names within a subgraph to avoid subgraph qualifier mismatches."],"tags":["metadata","model-not-found","filter-input","open-dds"],"backgroundTag":"metadata-validation-failed","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}