{"record":{"id":"4c47c2a439cd7740","repo":"hasura/graphql-engine","slug":"0-4c47c2","errorCode":null,"errorMessage":"{0}","messagePattern":"\\{0\\}","errorType":"exception","errorClass":"BooleanExpressionError::GraphqlConfigError","httpStatus":null,"severity":"error","filePath":"v3/crates/metadata-resolve/src/stages/boolean_expressions/error.rs","lineNumber":201,"sourceCode":"    DifferentDataConnectorObjectTypeInFilterExpression {\n        model: Qualified<ModelName>,\n        model_data_connector_object_type: DataConnectorObjectType,\n        filter_expression_type: Qualified<CustomTypeName>,\n        filter_expression_data_connector_object_type: DataConnectorObjectType,\n    },\n\n    #[error(\n        \"The relationship '{relationship_name}' cannot be used as a comparable relationship in boolean expression type '{boolean_expression_type_name}' because it is a remote relationship with an argument mapping target. Relationship '{relationship_name}' on type '{source_type}' has source field '{source_field}' mapped to target argument '{target_argument}'\"\n    )]\n    RemoteComparableRelationshipWithArgumentMappingTargetNotSupported {\n        boolean_expression_type_name: Qualified<CustomTypeName>,\n        relationship_name: open_dds::relationships::RelationshipName,\n        source_type: Qualified<CustomTypeName>,\n        source_field: FieldName,\n        target_argument: open_dds::query::ArgumentName,\n    },\n\n    #[error(\"{0}\")]\n    GraphqlConfigError(#[from] graphql_config::GraphqlConfigError),\n\n    #[error(\"{0}\")]\n    ScalarBooleanExpressionTypeError(\n        #[from] scalar_boolean_expressions::ScalarBooleanExpressionTypeError,\n    ),\n\n    #[error(\n        \"data connector error in boolean expression {boolean_expression_name:}: {data_connector_error:}\"\n    )]\n    DataConnectorError {\n        boolean_expression_name: Qualified<CustomTypeName>,\n        data_connector_error: data_connectors::NamedDataConnectorError,\n    },\n\n    #[error(\"{0}\")]\n    TypePredicateError(#[from] TypePredicateError),\n","sourceCodeStart":183,"sourceCodeEnd":219,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/boolean_expressions/error.rs#L183-L219","documentation":"Wrapper error: a graphql_config::GraphqlConfigError occurred during boolean expression resolution, for example invalid GraphQL naming configuration or a name customization that cannot be applied to a boolean expression type. The inner error's message is surfaced verbatim.","triggerScenarios":"Declaring a booleanExpressionType under a GraphQL config that customizes type/field names in a way that fails validation (invalid characters, conflicting names, missing type prefix configuration), so graphql_config parsing fails while resolving filters.","commonSituations":"Adding a graphql_config block to a model or boolean expression type with malformed naming customization; metadata schema upgrades that made previously-tolerated graphql config invalid.","solutions":["Inspect the wrapped GraphqlConfigError message to identify the invalid configuration item and fix it in the graphql_config block","Validate graphql naming customization against the OpenDDs graphql_config schema","Remove the offending customization if not needed"],"exampleFix":"// before\ngraphql_config:\n  type_names: { boolean_expression_type_prefix: \"123bad\" }\n// after\ngraphql_config:\n  type_names: { boolean_expression_type_prefix: \"Bad123\" }","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"// catch and unwrap the source error for actionable messages\ntry {\n  await applyMetadata(md);\n} catch (e) {\n  if (/GraphqlConfigError/.test(String(e?.message))) {\n    // e.message is the wrapped graphql_config error; fix the named config item\n    throw new Error(`Invalid graphql_config: ${e.message}`);\n  }\n  throw e;\n}","preventionTips":["Validate graphql_config blocks against the OpenDDs schema in CI","Use valid GraphQL identifier rules for all name customizations"],"tags":["hasura","graphql-config","boolean-expression","metadata"],"backgroundTag":"graphql-config-validation","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}