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

  1. Align the metadata argument type (nullability, underlying type) with the mapped connector operator's operand type
  2. Inspect the nested TypeCompatibilityIssue message for the precise mismatch
  3. 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

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


AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28). Data as JSON: /api/errors/9f392f7b769f2947. Report an issue: GitHub.