{"record":{"id":"223b34ab4f5c24d9","repo":"hasura/graphql-engine","slug":"the-data-connector-data-connector-name-has-an-er","errorCode":null,"errorMessage":"The data connector {data_connector_name} has an error: {error}","messagePattern":"The data connector (.+?) has an error: (.+?)","errorType":"validation","errorClass":"NamedDataConnectorError","httpStatus":null,"severity":"error","filePath":"v3/crates/metadata-resolve/src/stages/data_connectors/error.rs","lineNumber":14,"sourceCode":"use crate::helpers::ndc_validation::NDCValidationError;\nuse crate::types::error::{ContextualError, ShouldBeAnError};\nuse crate::types::subgraph::Qualified;\nuse open_dds::data_connector::DataConnectorName;\nuse open_dds::flags;\n\nimpl ContextualError for NamedDataConnectorError {\n    fn create_error_context(&self) -> Option<error_context::Context> {\n        None\n    }\n}\n\n#[derive(Debug, thiserror::Error)]\n#[error(\"The data connector {data_connector_name} has an error: {error}\")]\npub struct NamedDataConnectorError {\n    pub data_connector_name: Qualified<DataConnectorName>,\n    pub error: DataConnectorError,\n}\n\n#[derive(Debug, thiserror::Error)]\npub enum DataConnectorError {\n    #[error(\"the data connector is defined more than once\")]\n    DuplicateDataConnectorDefinition,\n    #[error(\"The url for the data connector is invalid: {error}\")]\n    InvalidDataConnectorUrl { error: url::ParseError },\n    #[error(\"Invalid header name {header_name} specified\")]\n    InvalidHeaderName { header_name: String },\n    #[error(\"Invalid value specified for header {header_name}\")]\n    InvalidHeaderValue { header_name: String },\n    #[error(\"{0}\")]\n    NdcValidationError(NDCValidationError),\n    #[error(","sourceCodeStart":1,"sourceCodeEnd":32,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/data_connectors/error.rs#L1-L32","documentation":"Top-level error wrapper for a named data connector: any DataConnectorError raised while resolving a specific connector is prefixed with the connector's qualified name so users know which connector failed.","triggerScenarios":"Any failure resolving a data connector definition: duplicate definition, invalid URL, invalid headers, NDC validation, or version problems.","commonSituations":"A single bad connector definition in otherwise valid metadata.","solutions":["Read the inner error for the specific cause (URL, headers, version, validation)","Fix that connector's metadata entry","Rebuild"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Pre-flight each connector definition\nfor c in connectors { validate_url(&c.uri)?; validate_headers(&c.headers)?; }","typeGuard":null,"tryCatchPattern":"Catch NamedDataConnectorError, use data_connector_name to locate the bad config, then handle inner error by variant.","preventionTips":["Validate connector URLs/headers at config load time","Keep connector definitions small and single-sourced"],"tags":["data-connector","wrapper","metadata"],"backgroundTag":"data-connector-misconfigured","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}