hasura/graphql-engine · error · NDCValidationError

Field {field_name:} not found in object type {object_type:}

Error message

Field {field_name:} not found in object type {object_type:} in data connector {data_connector_name:}.

What it means

A field mapping references a field that does not exist in the connector's object type. Validation ensures mapped fields exist in the NDC object type of the data connector.

Source

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

        "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,
    },

    #[error("Internal error while serializing error message. Error: {err:}")]
    InternalSerializationError { err: serde_json::Error },
}

pub fn validate_ndc(
    model_name: &Qualified<ModelName>,
    model: &models::Model,
    schema: &data_connectors::DataConnectorSchema,
) -> std::result::Result<(), NDCValidationError> {
    let Some(model_source) = &model.source else {

View on GitHub (pinned to 724551b9ae)

Solutions

  1. Inspect the connector's object type fields and correct the mapped field name
  2. Refresh/reload the connector schema
  3. Update the mapping if the object type name itself is wrong
Defensive patterns

Strategy: validation

Validate before calling

let obj = connector.object_types.get(object_type).ok_or(config_err)?;
assert!(obj.fields.contains_field(&field_name));

Prevention

When it happens

Trigger: Mapping field 'x' when the connector's object type only defines 'y'; connector object type shape changed (field renamed/removed).

Common situations: Connector schema drift after upstream changes; stale schema cache; incorrect object type chosen in the mapping.

Related errors


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