hasura/graphql-engine · warning · ScalarBooleanExpressionTypeIssue

the boolean expression '{type_name}' has enabled logical ope

Error message

the boolean expression '{type_name}' has enabled logical operators, but they will not appear in the GraphQL API unless you update your CompatibilityConfig date to at least 2024-11-26

What it means

The boolean expression type enables logical operators, but exposing them in the GraphQL API is gated behind a compatibility date; the CompatibilityConfig date must be at least 2024-11-26.

Source

Thrown at v3/crates/metadata-resolve/src/stages/scalar_boolean_expressions/error.rs:80

    // Because the GraphqlConfig's filterInputConfig requires all properties to be set, the effective meaning of not
    // having the is_null operator set is that the entire boolean expression cannot be rendered in GraphQL and so we
    // communicate that effect here, even though this issue is only about logical operators specifically.
    #[error(
        "a graphql section is defined in boolean expression type '{type_name}' but it will not appear in the GraphQL API unless logical operator field names are also configured in the GraphqlConfig in query.filterInputConfig"
    )]
    MissingLogicalOperatorNamesInGraphqlConfig {
        type_name: Qualified<CustomTypeName>,
    },
    // Because the GraphqlConfig's filterInputConfig requires all properties to be set, the effective meaning of not
    // having the is_null operator set is that the entire boolean expression cannot be rendered in GraphQL and so we
    // communicate that effect here, even though this issue is only about the is null operator specifically.
    #[error(
        "a graphql section is defined in boolean expression type '{type_name}' but it will not appear in the GraphQL API unless the is_null operator field name is also configured in the GraphqlConfig in query.filterInputConfig"
    )]
    MissingIsNullOperatorNameInGraphqlConfig {
        type_name: Qualified<CustomTypeName>,
    },
    #[error(
        "the boolean expression '{type_name}' has enabled logical operators, but they will not appear in the GraphQL API unless you update your CompatibilityConfig date to at least 2024-11-26"
    )]
    LogicalOperatorsUnavailable {
        type_name: Qualified<CustomTypeName>,
    },
    #[error(
        "the boolean expression '{type_name}' has a GraphQL field name conflict between the '{name}' {name_source_1} and the '{name}' {name_source_2}. One of these will need to be renamed."
    )]
    GraphqlFieldNameConflict {
        type_name: Qualified<CustomTypeName>,
        name: String,
        name_source_1: FieldNameSource,
        name_source_2: FieldNameSource,
    },
    #[error(
        "the comparable operator '{name}' is defined more than once in the boolean expression type '{type_name}'"
    )]
    DuplicateComparableOperatorFound {

View on GitHub (pinned to 724551b9ae)

Solutions

  1. Update CompatibilityConfig date to 2024-11-26 or later
  2. Verify the compatibility date change does not enable other breaking behaviors unintentionally

Example fix

// before
compatibility_config:
  date: 2024-09-01
// after
compatibility_config:
  date: 2024-11-26
Defensive patterns

Strategy: validation

Validate before calling

// check compatibility date gates logical operators
let d = compat_config.date;
if logical_operators_enabled && d < date(2024, 11, 26) {
    return Err("bump CompatibilityConfig date to >= 2024-11-26");
}

Prevention

When it happens

Trigger: Using logical operators in a boolean expression type while the project's CompatibilityConfig date is older than 2024-11-26 (or unset).

Common situations: Older projects with an earlier compatibility date after upgrading to a version that supports logical operators in filter input types.

Related errors


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