hasura/graphql-engine · error · NDCValidationError
data connector does not support mutations
Error message
data connector does not support mutations
What it means
The connector does not advertise mutation support, but the metadata routes mutation operations (insert/update/delete or mutating procedures) to it. The resolver rejects this combination at build time.
Source
Thrown at v3/crates/metadata-resolve/src/helpers/ndc_validation.rs:133
#[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 {
argument_name: open_dds::arguments::ArgumentName,
field_name: FieldName,View on GitHub (pinned to 724551b9ae)
Solutions
- Remove mutation operations from models/commands on that connector
- Enable mutations in the connector's capabilities/config
- Move the mutating model to a connector that supports mutations
Defensive patterns
Strategy: fallback
Validate before calling
if requires_mutations && !caps.mutations.supported {
return Err(friendly_config_error);
} Prevention
- Only define mutations on connectors advertising mutation support
When it happens
Trigger: Defining insert/update/delete on a model whose data connector capabilities lack 'mutations'; using a read-only analytics connector for a mutation command.
Common situations: Read-only connectors (e.g. BI/analytics backends) accidentally given mutation metadata; connector downgrade removing mutation support.
Related errors
- Relationship '{name}' is either remote or not having 'relati
- data connector does not support queries
- setting up global config failed: %w
- unable to parse server endpoint: %w
- error from data source: {}
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/290c342283f40047.
Report an issue: GitHub.