{"record":{"id":"290c342283f40047","repo":"hasura/graphql-engine","slug":"data-connector-does-not-support-mutations","errorCode":null,"errorMessage":"data connector does not support mutations","messagePattern":"data connector does not support mutations","errorType":"validation","errorClass":"NDCValidationError","httpStatus":null,"severity":"error","filePath":"v3/crates/metadata-resolve/src/helpers/ndc_validation.rs","lineNumber":133,"sourceCode":"    #[error(\n        \"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:}\"\n    )]\n    FuncProcAndCommandScalarOutputTypeMismatch {\n        function_or_procedure_name: String,\n        function_or_procedure_output_type: String,\n        command_name: String,\n        command_output_type: String,\n    },\n    #[error(\n        \"Custom result type of function {function_or_procedure_name:} does not match custom output type of command: {command_name:}\"\n    )]\n    FuncProcAndCommandCustomOutputTypeMismatch {\n        function_or_procedure_name: String,\n        command_name: String,\n    },\n    #[error(\"data connector does not support queries\")]\n    QueryCapabilityUnsupported,\n    #[error(\"data connector does not support mutations\")]\n    MutationCapabilityUnsupported,\n\n    // for `DataConnectorLink.argumentPresets` not all type representations are supported.\n    #[error(\n        \"Unsupported type representation {representation:} in scalar type {scalar_type:}, for argument preset name {argument_name:}. Only 'json' representation is supported.\"\n    )]\n    UnsupportedTypeInDataConnectorLinkArgumentPreset {\n        representation: String,\n        scalar_type: DataConnectorScalarType,\n        argument_name: open_dds::types::DataConnectorArgumentName,\n    },\n\n    #[error(\n        \"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:}'.\"\n    )]\n    NoSuchArgumentInNDCArgumentMapping {\n        argument_name: open_dds::arguments::ArgumentName,\n        field_name: FieldName,","sourceCodeStart":115,"sourceCodeEnd":151,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/helpers/ndc_validation.rs#L115-L151","documentation":"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.","triggerScenarios":"Defining insert/update/delete on a model whose data connector capabilities lack 'mutations'; using a read-only analytics connector for a mutation command.","commonSituations":"Read-only connectors (e.g. BI/analytics backends) accidentally given mutation metadata; connector downgrade removing mutation support.","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"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"if requires_mutations && !caps.mutations.supported {\n    return Err(friendly_config_error);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Only define mutations on connectors advertising mutation support"],"tags":["ndc","capabilities","mutation"],"backgroundTag":"connector-capability-unsupported","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}