{"record":{"id":"e948d261a7a80dc0","repo":"hasura/graphql-engine","slug":"issue-in-boolean-expression-type-type-name-i","errorCode":null,"errorMessage":"issue in boolean expression type '{type_name}': {issue}","messagePattern":"issue in boolean expression type '(.+?)': (.+?)","errorType":"validation","errorClass":"NamedAggregateBooleanExpressionIssue","httpStatus":null,"severity":"warning","filePath":"v3/crates/metadata-resolve/src/stages/aggregate_boolean_expressions/types.rs","lineNumber":402,"sourceCode":"\n#[derive(Debug, Eq, PartialEq, Copy, Clone, derive_more::with_trait::Display)]\npub enum NameSource {\n    #[display(\"comparable aggregation function\")]\n    ComparableAggregationFunction,\n    #[display(\"comparable aggregatable field\")]\n    ComparableAggregatableField,\n    #[display(\"comparable aggregatable relationship\")]\n    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":384,"sourceCodeEnd":420,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/aggregate_boolean_expressions/types.rs#L384-L420","documentation":"Wrapper error attaching the qualified boolean expression type name to an inner AggregateBooleanExpressionIssue. It tells you which named boolean expression type carries the underlying problem (e.g. a missing logical operator or count aggregation naming configuration), with the inner issue describing the specifics.","triggerScenarios":"Any inner issue in AggregateBooleanExpressionIssue (MissingLogicalOperatorNamesInGraphqlConfig or MissingCountAggregationNamesInGraphqlConfig) raised while resolving the named boolean expression type '{type_name}'.","commonSituations":"Metadata where boolean expression types declare a graphql section but the global GraphqlConfig omits filterInputConfig logical operator names or aggregate count field names.","solutions":["Read the inner {issue} text to identify the concrete problem (logical operator names or count aggregation names missing from GraphqlConfig).","Add the corresponding names to query.filterInputConfig / query.aggregate in the GraphqlConfig.","If the GraphQL API exposure is not intended, remove the graphql section from that boolean expression type."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"match resolve_aggregate_boolean_expressions(&ctx) {\n    Err(issues) => {\n        for issue in &issues {\n            if let AggregateBooleanExpressionIssue::MissingLogicalOperatorNamesInGraphqlConfig\n             | AggregateBooleanExpressionIssue::MissingCountAggregationNamesInGraphqlConfig\n             = issue.issue { /* warn: graphql section is ineffective; fix GraphqlConfig */ }\n        }\n    }\n    Ok(v) => { /* ... */ }\n}","preventionTips":["Treat these as build warnings: always pair a graphql section with the matching GraphqlConfig entries.","Run metadata resolve locally and fail on warnings before pushing."],"tags":["boolean-expression","graphql-config","wrapper-error"],"backgroundTag":"graphql-config-missing","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}