{"record":{"id":"8e6b5e9a117dbfef","repo":"hasura/graphql-engine","slug":"a-graphql-section-is-defined-but-it-will-not-appea","errorCode":null,"errorMessage":"a graphql section is defined but it will not appear in the GraphQL API unless logical operator field names are also configured in the GraphqlConfig in query.filterInputConfig","messagePattern":"a graphql section is defined but it will not appear in the GraphQL API unless logical operator field names are also configured in the GraphqlConfig in query\\.filterInputConfig","errorType":"validation","errorClass":"AggregateBooleanExpressionIssue","httpStatus":null,"severity":"warning","filePath":"v3/crates/metadata-resolve/src/stages/aggregate_boolean_expressions/types.rs","lineNumber":410,"sourceCode":"    ComparableAggregatableRelationship,\n    #[display(\"logical operator\")]\n    LogicalOperator,\n    #[display(\"count aggregation function\")]\n    CountAggregationFunction,\n    #[display(\"count distinct aggregation function\")]\n    CountDistinctAggregationFunction,\n}\n\n#[derive(Debug, thiserror::Error)]\n#[error(\"issue in boolean expression type '{type_name}': {issue}\")]\npub struct NamedAggregateBooleanExpressionIssue {\n    pub type_name: Qualified<CustomTypeName>,\n    pub issue: AggregateBooleanExpressionIssue,\n}\n\n#[derive(Debug, thiserror::Error)]\npub enum AggregateBooleanExpressionIssue {\n    #[error(\n        \"a graphql section is defined but it will not appear in the GraphQL API unless logical operator field names are also configured in the GraphqlConfig in query.filterInputConfig\"\n    )]\n    MissingLogicalOperatorNamesInGraphqlConfig,\n\n    #[error(\n        \"a {count_type} aggregation is defined but it will not appear in the GraphQL API unless count aggregate field names are also configured in the GraphqlConfig in query.aggregate\"\n    )]\n    MissingCountAggregationNamesInGraphqlConfig { count_type: CountAggregateType },\n}\n","sourceCodeStart":392,"sourceCodeEnd":420,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/aggregate_boolean_expressions/types.rs#L392-L420","documentation":"A boolean expression type declares a graphql section, but the global GraphqlConfig does not configure logical operator field names in query.filterInputConfig, so the type will not be exposed in the GraphQL API. The resolver emits this to warn that your graphql section is silently ineffective.","triggerScenarios":"Boolean expression metadata with a graphql block while query.filterInputConfig.logical_operator_names (and/or related filter input config) is absent from the GraphqlConfig.","commonSituations":"Enabling boolean expression GraphQL exposure per-type without flipping the global config; upgrading to a metadata version that moved logical operator naming into GraphqlConfig; partial config migration.","solutions":["Add logical operator field names under query.filterInputConfig in your GraphqlConfig (typically _and, _or, _not).","If you do not want this type in the GraphQL API, remove its graphql section to silence the warning."],"exampleFix":"# before\n# boolean expression type has:\ngraphql: {}\n# GraphqlConfig has no query.filterInputConfig\n# after\nquery:\n  filterInputConfig:\n    logical_operator_names:\n      and: _and\n      or: _or\n      not: _not","handlingStrategy":"validation","validationCode":"fn graphql_section_effective(be: &BooleanExpressionType, cfg: &GraphqlConfig) -> bool {\n    be.graphql.is_some()\n        && cfg.query.filter_input_config\n              .and_then(|f| f.logical_operator_names).is_some()\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Whenever you add graphql: to a boolean expression type, immediately add filterInputConfig logical operator names.","Keep GraphqlConfig complete in a shared base metadata document."],"tags":["graphql","config","boolean-expression","logical-operators"],"backgroundTag":"graphql-config-missing","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}