hasura/graphql-engine · error · BooleanExpressionError::UnsupportedTypeInObjectBooleanExpressionType
unsupported type '{type_name}' used in object boolean expres
Error message
unsupported type '{type_name}' used in object boolean expression. '{boolean_expression_type_name}'; only object types are supported What it means
The boolean expression stage requires the backing type of an object boolean expression to be an object type. This error fires when the referenced type exists but resolves to a non-object kind (e.g. a scalar type, enum, or a boolean expression type itself), so its fields/relationships cannot be used to build comparison expressions.
Source
Thrown at v3/crates/metadata-resolve/src/stages/boolean_expressions/error.rs:25
use crate::types::error::{ContextualError, TypePredicateError};
use crate::types::subgraph::{Qualified, QualifiedTypeName};
use open_dds::{
data_connector::{DataConnectorName, DataConnectorObjectType},
models::ModelName,
relationships::RelationshipName,
types::{CustomTypeName, FieldName},
};
#[derive(Debug, thiserror::Error)]
pub enum BooleanExpressionError {
#[error(
"unknown type '{type_name}' used in object boolean expression '{boolean_expression_type_name}'"
)]
UnknownTypeInObjectBooleanExpressionType {
boolean_expression_type_name: Qualified<CustomTypeName>,
type_name: Qualified<CustomTypeName>,
},
#[error(
"unsupported type '{type_name}' used in object boolean expression. '{boolean_expression_type_name}'; only object types are supported"
)]
UnsupportedTypeInObjectBooleanExpressionType {
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>,View on GitHub (pinned to 724551b9ae)
Solutions
- Point objectType at an actual object type (one with fields) in your metadata
- If you meant to filter on a scalar, use the scalar boolean expression / filter configuration on the model instead
- Check for kind changes after upgrades and update boolean expression definitions
- Rebuild metadata
Example fix
# before objectType: my_sub.UserStatus # an enum # after objectType: my_sub.User # an object type
Defensive patterns
Strategy: validation
Validate before calling
// Ensure the backing type exists AND is an object kind
match types.get(&be.object_type) {
Some(t) if t.is_object_type() => {}
Some(_) => return Err("backing type is not an object type"),
None => return Err("backing type not found"),
} Type guard
fn is_object_type(t: &ResolvedType) -> bool { matches!(t, ResolvedType::ObjectType(_)) } Try / catch
match resolve(metadata) {
Err(BooleanExpressionError::UnsupportedTypeInObjectBooleanExpressionType { type_name, .. }) => {
// tell user to point objectType at an object type or use scalar filter config
}
other => other,
} Prevention
- Never reuse scalar/enum/other filter types as objectType
- After metadata upgrades, review boolean expression definitions for kind changes
When it happens
Trigger: Setting objectType of an ObjectBooleanExpressionType to a scalar, enum, or another boolean expression type instead of a real object type; or a type whose kind changed between metadata versions (object → scalar) while boolean expression definitions were left unchanged.
Common situations: Mistaking scalar type names for object types when authoring filter expressions; upgrading OpenDD/hasura CLI versions where a type's kind semantics changed; reusing a filter input type as the backing object type.
Related errors
- argument {argument_name:?} has an issue: {issue:?}
- unknown type '{type_name}' used in object boolean expression
- unknown data connector {data_connector:} referenced in objec
- unknown data connector object type {data_connector_object_ty
- unknown field '{field_name:}' used in object boolean express
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/adeb83381eb3fee4.
Report an issue: GitHub.