hasura/graphql-engine · error · NDCValidationError

data connector does not support queries

Error message

data connector does not support queries

What it means

A model or command routed to a data connector requires query capabilities that the connector does not report. Connectors advertise supported operations in their capabilities response; resolution fails early if queries are needed but unsupported.

Source

Thrown at v3/crates/metadata-resolve/src/helpers/ndc_validation.rs:131

        field_name: FieldName,
    },
    #[error(
        "Result type of function/procedure {function_or_procedure_name:} is {function_or_procedure_output_type:} but output type of command {command_name:} is {command_output_type:}"
    )]
    FuncProcAndCommandScalarOutputTypeMismatch {
        function_or_procedure_name: String,
        function_or_procedure_output_type: String,
        command_name: String,
        command_output_type: String,
    },
    #[error(
        "Custom result type of function {function_or_procedure_name:} does not match custom output type of command: {command_name:}"
    )]
    FuncProcAndCommandCustomOutputTypeMismatch {
        function_or_procedure_name: String,
        command_name: String,
    },
    #[error("data connector does not support queries")]
    QueryCapabilityUnsupported,
    #[error("data connector does not support mutations")]
    MutationCapabilityUnsupported,

    // for `DataConnectorLink.argumentPresets` not all type representations are supported.
    #[error(
        "Unsupported type representation {representation:} in scalar type {scalar_type:}, for argument preset name {argument_name:}. Only 'json' representation is supported."
    )]
    UnsupportedTypeInDataConnectorLinkArgumentPreset {
        representation: String,
        scalar_type: DataConnectorScalarType,
        argument_name: open_dds::types::DataConnectorArgumentName,
    },

    #[error(
        "Argument '{argument_name:}' used in argument mapping for the field '{field_name:}' in object type '{object_type_name:}' is not defined in the data connector '{data_connector_name:}'."
    )]
    NoSuchArgumentInNDCArgumentMapping {

View on GitHub (pinned to 724551b9ae)

Solutions

  1. Verify the connector's /capabilities response includes queries
  2. Upgrade or reconfigure the data connector to support queries
  3. Route the model/command to a connector that supports queries, or remove the model
Defensive patterns

Strategy: fallback

Validate before calling

let caps = fetch_connector_capabilities().await?;
if !caps.queries.supported { /* skip/redirect model before resolving */ }

Prevention

When it happens

Trigger: Attaching a model backed by a read-only-misconfigured connector that omits 'queries' from its capabilities; pointing metadata at a connector that only supports mutations/procedures.

Common situations: Using a minimal custom connector without query support; capabilities response changed after a connector upgrade; wrong connector URL wired in config.

Related errors


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