hasura/graphql-engine · error · AggregateBooleanExpressionError
the filter input model '{model_name}' cannot be found
Error message
the filter input model '{model_name}' cannot be found What it means
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.
Source
Thrown at v3/crates/metadata-resolve/src/stages/aggregate_boolean_expressions/types.rs:355
#[error(
"the boolean expression type '{boolean_expression_type}' used in the comparable relationship '{relationship_name}' does not have an object aggregate operand"
)]
ComparableRelationshipBooleanExpressionIncorrectOperandType {
relationship_name: open_dds::relationships::RelationshipName,
boolean_expression_type: Qualified<CustomTypeName>,
},
#[error(
"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}'"
)]
ComparableRelationshipBooleanExpressionTypeMismatch {
relationship_name: open_dds::relationships::RelationshipName,
relationship_target_object_type: Qualified<CustomTypeName>,
boolean_expression_type: Qualified<CustomTypeName>,
boolean_expression_operand_type: Qualified<CustomTypeName>,
},
#[error("the filter input model '{model_name}' cannot be found")]
FilterInputModelNotFound { model_name: Qualified<ModelName> },
#[error(
"the operand type '{operand_type}' does not match the type of the model '{model_name}': '{model_type}'"
)]
FilterInputModelTypeMismatch {
operand_type: Qualified<CustomTypeName>,
model_name: Qualified<ModelName>,
model_type: Qualified<CustomTypeName>,
},
#[error(
"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."
)]
GraphqlNameConflict {
name: String,
name_source_1: NameSource,
name_source_2: NameSource,View on GitHub (pinned to 724551b9ae)
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.
Example fix
# before
filter_input:
model_name:
name: ArticleFilter # model does not exist
# after
models:
- name: ArticleFilter
... # define the model
filter_input:
model_name:
name: ArticleFilter Defensive patterns
Strategy: validation
Validate before calling
let model_names: HashSet<_> = metadata.models.iter().map(|m| m.name.clone()).collect();
for be in &metadata.boolean_expression_types {
if let Some(fi) = &be.filter_input {
assert!(model_names.contains(&fi.model_name),
"filter input model {} not found", fi.model_name);
}
} Prevention
- When deleting/renaming models, grep for filter_input references.
- Prefer unqualified local names within a subgraph to avoid subgraph qualifier mismatches.
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- the comparable relationship '{relationship_name}' for the op
- the boolean expression type '{boolean_expression_type}' used
- the operand type '{operand_type}' does not match the type of
- Unknown type: {type_name}
- The field {field_name:} has type {field_type:} but the field
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/c42b61808afdd666.
Report an issue: GitHub.