hasura/graphql-engine · error · ScalarBooleanExpressionTypeError
scalar type representation required for type {scalar_type:}
Error message
scalar type representation required for type {scalar_type:} in data connector {data_connector:} What it means
A boolean expression operator requires a specific scalar type representation from the data connector (e.g. for equality/comparison arguments), but that scalar type is absent from the connector's scalar representations.
Source
Thrown at v3/crates/metadata-resolve/src/stages/scalar_boolean_expressions/error.rs:41
scalar_type: DataConnectorScalarType,
},
#[error(
"cannot find type {custom_type:} when resolving arguments for comparison operator {operator_name:} for {boolean_expression_type:}"
)]
UnknownCustomTypeInComparisonOperatorArgument {
custom_type: Qualified<CustomTypeName>,
operator_name: OperatorName,
boolean_expression_type: Qualified<CustomTypeName>,
},
#[error("data connector {data_connector:} could not be found")]
DataConnectorNotFound {
data_connector: Qualified<DataConnectorName>,
},
#[error("scalar representations for data connector {data_connector:} could not be found")]
DataConnectorScalarRepresentationsNotFound {
data_connector: Qualified<DataConnectorName>,
},
#[error(
"scalar type representation required for type {scalar_type:} in data connector {data_connector:}"
)]
DataConnectorScalarRepresentationRequired {
data_connector: Qualified<DataConnectorName>,
scalar_type: DataConnectorScalarType,
},
#[error("Predicate types in data connectors are unsupported")]
PredicateTypesUnsupported,
#[error("{0}")]
GraphqlError(#[from] graphql_config::GraphqlConfigError),
}
impl ContextualError for ScalarBooleanExpressionTypeError {
fn create_error_context(&self) -> Option<error_context::Context> {
None
}
}
View on GitHub (pinned to 724551b9ae)
Solutions
- Confirm the connector actually supports the scalar type referenced by the operator
- Refresh the connector's capabilities/schema so newly added scalar types appear
- Remove or remap the operator to a supported scalar type
Defensive patterns
Strategy: validation
Validate before calling
// check required scalar type exists in connector representations
let scalars: HashSet<_> = caps.scalar_types.keys().cloned().collect();
for op in &required_operators {
if !scalars.contains(&op.scalar_type) { return Err(format!("missing scalar: {}", op.scalar_type)); }
} Prevention
- Keep operator mappings limited to scalars the connector exports
- Re-run connector schema introspection when connector types change
When it happens
Trigger: An operator on a boolean expression type is used against a scalar whose DataConnectorScalarType is not present in the connector's reported scalar type representations.
Common situations: Connector does not support the scalar type used by the operator (e.g. a custom scalar), capabilities out of date after the connector added new types, or mapping an operator to a type the connector never exports.
Related errors
- the operand type '{operand_type}' must be a scalar type
- Scalar representations for data connector '{data_connector_n
- Model {model:} has source data connector object type {model_
- the aggregate expression '{aggregate_expression}' is used wi
- data connector {data_connector:} could not be found
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/b9c42840d021fe63.
Report an issue: GitHub.