hasura/graphql-engine · error · BooleanExpressionError::UnknownFieldInObjectBooleanExpressionType
unknown field '{field_name:}' used in object boolean express
Error message
unknown field '{field_name:}' used in object boolean expression type {object_boolean_expression_type:} What it means
During boolean expression construction, each comparison operator defined on an object boolean expression type must name a real field of the backing object type. This error fires when an operator (or comparable field) references a field name that does not exist on that object type.
Source
Thrown at v3/crates/metadata-resolve/src/stages/boolean_expressions/error.rs:47
boolean_expression_type_name: Qualified<CustomTypeName>,
type_name: Qualified<CustomTypeName>,
},
#[error(
"unknown data connector {data_connector:} referenced in object boolean expression type {object_boolean_expression_type:}"
)]
UnknownDataConnectorInObjectBooleanExpressionType {
data_connector: Qualified<DataConnectorName>,
object_boolean_expression_type: Qualified<CustomTypeName>,
},
#[error(
"unknown data connector object type {data_connector_object_type:} (in data connector {data_connector:}) referenced in object boolean expression type {object_boolean_expression_type:}"
)]
UnknownDataConnectorTypeInObjectBooleanExpressionType {
data_connector: Qualified<DataConnectorName>,
data_connector_object_type: DataConnectorObjectType,
object_boolean_expression_type: Qualified<CustomTypeName>,
},
#[error(
"unknown field '{field_name:}' used in object boolean expression type {object_boolean_expression_type:}"
)]
UnknownFieldInObjectBooleanExpressionType {
field_name: FieldName,
object_boolean_expression_type: Qualified<CustomTypeName>,
},
#[error(
"relationship '{relationship_name}' is used in comparableRelationships in boolean expression type '{object_boolean_expression_type}' does not exist on type '{type_name}'"
)]
UnknownRelationshipInObjectBooleanExpressionType {
relationship_name: RelationshipName,
object_boolean_expression_type: Qualified<CustomTypeName>,
type_name: Qualified<CustomTypeName>,
},
#[error(
"the object type '{object_type:}' used in boolean expression type {object_boolean_expression_type:} does not have a mapping to object {data_connector_object_type:} of data connector {data_connector:}"
)]
NoDataConnectorTypeMappingForObjectTypeInBooleanExpression {View on GitHub (pinned to 724551b9ae)
Solutions
- Compare the field name in the error against the backing object type's field list
- Fix or remove the operator/comparable field entry referencing the unknown field
- If the field was renamed, update the boolean expression config to the new name
- Rebuild metadata
Example fix
# before
filter:
operators:
my_sub.SomeBooleanExpression:
fields:
- name: emial # typo
# after
filter:
operators:
my_sub.SomeBooleanExpression:
fields:
- name: email Defensive patterns
Strategy: validation
Validate before calling
// Every operator/comparable field must exist on the backing object type
let fields: HashSet<&str> = object_type.fields().map(|f| f.name()).collect();
for f in boolean_expr.filterable_fields() {
if !fields.contains(f.as_str()) {
return Err(format!("field {f} does not exist on backing object type"));
}
} Try / catch
match resolve(metadata) {
Err(BooleanExpressionError::UnknownFieldInObjectBooleanExpressionType { field_name, object_boolean_expression_type }) => {
// fix or drop the operator referencing field_name
}
other => other,
} Prevention
- Update filter/operator config in the same PR as field renames
- Prefer generating filter config from the object type's field list
When it happens
Trigger: Defining filter operators on a boolean expression type that reference field names not present on the backing object type; renaming or removing a field from the object type without updating the boolean expression's operator definitions.
Common situations: Field renames in the object type after filter configuration was authored; typos in field names inside object boolean expression operator config; mismatched casing of field identifiers.
Related errors
- argument {argument_name:?} has an issue: {issue:?}
- unknown type '{type_name}' used in object boolean expression
- unsupported type '{type_name}' used in object boolean expres
- unknown data connector {data_connector:} referenced in objec
- unknown data connector object type {data_connector_object_ty
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/c59257f697df7827.
Report an issue: GitHub.