hasura/graphql-engine · error · NDCValidationError

Argument '{argument_name:}' used in argument mapping for the

Error message

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:}'.

What it means

An NDC argument mapping on an object type field references an argument name that the target data connector does not define. Argument mappings must only use arguments the connector exposes.

Source

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

        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 {
        argument_name: open_dds::arguments::ArgumentName,
        field_name: FieldName,
        object_type_name: Qualified<CustomTypeName>,
        data_connector_name: Qualified<DataConnectorName>,
    },

    #[error(
        "Field {field_name:} not found in object type {object_type:} in data connector {data_connector_name:}."
    )]
    NoSuchFieldInObjectType {
        data_connector_name: Qualified<DataConnectorName>,
        field_name: String,
        object_type: String,
    },

View on GitHub (pinned to 724551b9ae)

Solutions

  1. Check the connector's schema for defined argument names and use one of them
  2. Fix typos/case in the argument name in the mapping
  3. Refresh connector schema and re-apply metadata
Defensive patterns

Strategy: validation

Validate before calling

assert!(connector.arguments.contains(&mapping.argument_name));

Prevention

When it happens

Trigger: Adding an argumentMapping on a field with an argument name absent from the connector's declared arguments; renaming an argument in the connector without updating the mapping.

Common situations: Connector schema drift; hand-written mappings with typos; copying mappings between connectors that expose different arguments.

Related errors


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