hasura/graphql-engine · error · BooleanExpressionError::DataConnectorError
data connector error in boolean expression {boolean_expressi
Error message
data connector error in boolean expression {boolean_expression_name:}: {data_connector_error:} What it means
Raised when the data connector (referenced by name) reports an error while the boolean expression stage validates or builds filter support for a boolean expression type. The message names the boolean expression and includes the connector's own error text.
Source
Thrown at v3/crates/metadata-resolve/src/stages/boolean_expressions/error.rs:209
"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}'"
)]
RemoteComparableRelationshipWithArgumentMappingTargetNotSupported {
boolean_expression_type_name: Qualified<CustomTypeName>,
relationship_name: open_dds::relationships::RelationshipName,
source_type: Qualified<CustomTypeName>,
source_field: FieldName,
target_argument: open_dds::query::ArgumentName,
},
#[error("{0}")]
GraphqlConfigError(#[from] graphql_config::GraphqlConfigError),
#[error("{0}")]
ScalarBooleanExpressionTypeError(
#[from] scalar_boolean_expressions::ScalarBooleanExpressionTypeError,
),
#[error(
"data connector error in boolean expression {boolean_expression_name:}: {data_connector_error:}"
)]
DataConnectorError {
boolean_expression_name: Qualified<CustomTypeName>,
data_connector_error: data_connectors::NamedDataConnectorError,
},
#[error("{0}")]
TypePredicateError(#[from] TypePredicateError),
#[error("{0}")]
RelationshipError(#[from] relationships::RelationshipError),
}
impl ContextualError for BooleanExpressionError {
fn create_error_context(&self) -> Option<error_context::Context> {
None
}View on GitHub (pinned to 724551b9ae)
Solutions
- Check the inner `data_connector_error` (NamedDataConnectorError) to see if the connector name is unregistered or errored
- Verify the data connector block with that name exists in the same metadata source and is healthy
- Align connector plugin and metadata versions; simplify the boolean expression to operations the connector supports
Defensive patterns
Strategy: try-catch
Validate before calling
// Verify all referenced data connectors exist before resolving
let known: HashSet<_> = metadata.data_connectors.keys().collect();
for be in metadata.boolean_expression_types() {
if let Some(dc) = be.data_connector_name() {
assert!(known.contains(&dc), "unknown data connector {dc}");
}
} Type guard
fn is_data_connector_error(e: &BooleanExpressionError) -> bool {
matches!(e, BooleanExpressionError::DataConnectorError { .. })
} Try / catch
if let BooleanExpressionError::DataConnectorError { boolean_expression_name, data_connector_error } = &err {
eprintln!("connector {data_connector_error} failed for {boolean_expression_name}");
} Prevention
- Keep data connector definitions and boolean expressions in the same metadata apply
- Run connector health checks before applying metadata changes
When it happens
Trigger: A boolean expression type whose `data_connector` relationship/comparison mapping fails in the connector — e.g. the referenced data connector cannot be found by name, or the connector rejects the boolean expression's filter capabilities.
Common situations: Subgraph metadata referencing a data connector that was renamed or removed; version skew between the metadata and the connector plugin; connector-specific comparison operator mappings not supported.
Related errors
- unknown data connector {data_connector:} referenced in objec
- unknown data connector object type {data_connector_object_ty
- The data connector '{data_connector_name}' does not support
- The data connector '{data_connector_name}' does not support
- argument {argument_name:?} has an issue: {issue:?}
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/8eb681b7752506d6.
Report an issue: GitHub.