hasura/graphql-engine · error · ScalarBooleanExpressionOperatorIssue
the argument type for the operator '{operator_name}' in the
Error message
the argument type for the operator '{operator_name}' in the boolean expression '{type_name}' is not compatible with the mapped operator's argument type defined in the data connector: {issue} What it means
The operator's argument type is incompatible with the argument type declared by the mapped data connector operator, as determined by type validation (TypeCompatibilityIssue).
Source
Thrown at v3/crates/metadata-resolve/src/stages/scalar_boolean_expressions/error.rs:155
},
#[error(
"the argument type '{argument_type}' for the operator '{operator_name}' in the boolean expression '{type_name}' should be a list"
)]
ArgumentTypeShouldBeList {
type_name: Qualified<CustomTypeName>,
operator_name: OperatorName,
argument_type: QualifiedTypeReference,
},
#[error(
"the argument type '{argument_type}' for the operator '{operator_name}' in the boolean expression '{type_name}' should match the scalar type '{scalar_type}'"
)]
ArgumentTypeShouldMatchScalar {
type_name: Qualified<CustomTypeName>,
operator_name: OperatorName,
argument_type: QualifiedTypeReference,
scalar_type: QualifiedTypeName,
},
#[error(
"the argument type for the operator '{operator_name}' in the boolean expression '{type_name}' is not compatible with the mapped operator's argument type defined in the data connector: {issue}"
)]
ArgumentTypeMismatch {
type_name: Qualified<CustomTypeName>,
operator_name: OperatorName,
issue: type_validation::TypeCompatibilityIssue,
},
#[error(
"the operator '{operator_name}' in the boolean expression '{type_name}' is only applicable on string scalars: {reason}"
)]
OnlyApplicableOnStringScalar {
type_name: Qualified<CustomTypeName>,
operator_name: OperatorName,
reason: StringOperatorReason,
},
}
impl ShouldBeAnError for ScalarBooleanExpressionOperatorIssue {View on GitHub (pinned to 724551b9ae)
Solutions
- Align the metadata argument type (nullability, underlying type) with the mapped connector operator's operand type
- Inspect the nested TypeCompatibilityIssue message for the precise mismatch
- Choose a different mapped operator whose operand type matches
Defensive patterns
Strategy: validation
Validate before calling
// run type validation before metadata apply
match validate_compatibility(&argument_type, &connector_operand_type) {
Ok(_) => {},
Err(issue) => return Err(format!("argument incompatible: {}", issue)),
} Prevention
- Match nullability and underlying scalar representation with the connector operand type
When it happens
Trigger: Mapping an operator to a connector comparison operator whose operand type does not validate against the metadata-declared argument type (e.g. nullable vs non-nullable, or differing underlying scalar representations).
Common situations: Nullable mismatches between metadata argument types and connector operand types; connector expecting a different scalar representation than declared.
Related errors
- The operator '{operator_name}' is mapped to '{mapped_operato
- cannot get absolute path: %w
- Unexpected type of results.aggregates.count (${count}) expec
- Column order by target path did not end in a column field va
- the operand type '{operand_type}' does not match the operand
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/9f392f7b769f2947.
Report an issue: GitHub.