hasura/graphql-engine · error · ScalarBooleanExpressionTypeError

data connector {data_connector:} could not be found

Error message

data connector {data_connector:} could not be found

What it means

Thrown during metadata resolution when a boolean expression type or its operators reference a data connector by name, but no data connector with that qualified name (subgraph + name) exists in the metadata.

Source

Thrown at v3/crates/metadata-resolve/src/stages/scalar_boolean_expressions/error.rs:33

    )]
    ScalarTypeFromUnknownDataConnector {
        data_connector: Qualified<DataConnectorName>,
        scalar_type: DataConnectorScalarType,
    },
    #[error("cannot find scalar type {scalar_type:} in data connector {data_connector:}")]
    UnknownScalarTypeInDataConnector {
        data_connector: Qualified<DataConnectorName>,
        scalar_type: DataConnectorScalarType,
    },
    #[error(
        "cannot find type {custom_type:} when resolving arguments for comparison operator {operator_name:} for {boolean_expression_type:}"
    )]
    UnknownCustomTypeInComparisonOperatorArgument {
        custom_type: Qualified<CustomTypeName>,
        operator_name: OperatorName,
        boolean_expression_type: Qualified<CustomTypeName>,
    },
    #[error("data connector {data_connector:} could not be found")]
    DataConnectorNotFound {
        data_connector: Qualified<DataConnectorName>,
    },
    #[error("scalar representations for data connector {data_connector:} could not be found")]
    DataConnectorScalarRepresentationsNotFound {
        data_connector: Qualified<DataConnectorName>,
    },
    #[error(
        "scalar type representation required for type {scalar_type:} in data connector {data_connector:}"
    )]
    DataConnectorScalarRepresentationRequired {
        data_connector: Qualified<DataConnectorName>,
        scalar_type: DataConnectorScalarType,
    },
    #[error("Predicate types in data connectors are unsupported")]
    PredicateTypesUnsupported,
    #[error("{0}")]
    GraphqlError(#[from] graphql_config::GraphqlConfigError),

View on GitHub (pinned to 724551b9ae)

Solutions

  1. Verify the data connector name and subgraph in the boolean expression type matches an existing DataConnector definition
  2. Ensure the metadata document defining the data connector is included in the metadata source list
  3. Check for typos or stale names after renaming a data connector

Example fix

// before
data_connector: ref("subgraph/patterns/my_connector")
// after
data_connector: ref("subgraph/patterns/postgres_connector")
Defensive patterns

Strategy: validation

Validate before calling

// before resolving, assert all referenced data connectors exist
let names: HashSet<_> = metadata_accessor.data_connectors.iter()
    .map(|dc| dc.name.clone()).collect();
for be in &metadata_accessor.boolean_expression_types {
    if !names.contains(&be.data_connector) {
        return Err(format!("unknown data connector: {}", be.data_connector));
    }
}

Prevention

When it happens

Trigger: A ScalarBooleanExpression (or operator mapping) in open-dds metadata names a data connector that is not defined by any DataConnectorLink/metadata document in the project.

Common situations: Typos in the data connector name, forgetting to include the data connector metadata file, using the wrong subgraph qualifier, or renaming a connector without updating boolean expression types.

Related errors


AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28). Data as JSON: /api/errors/69f372e7305e1539. Report an issue: GitHub.