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
- Update CompatibilityConfig date to 2024-11-26 or later
- 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
- Track compatibility date changes alongside feature adoption
- Read release notes for date-gated features before enabling them
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
- cannot create migrations directory: %w
- cannot create metadata directory: %w
- Field mapping not found for the field {field_name:} of type
- Object type '{type_name}' not found
- Argument mapping not found for the argument {argument_name:}
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/fb3af821f7250299.
Report an issue: GitHub.