{"record":{"id":"f9174e39bc84e863","repo":"hasura/graphql-engine","slug":"the-data-connector-is-defined-more-than-once","errorCode":null,"errorMessage":"the data connector is defined more than once","messagePattern":"the data connector is defined more than once","errorType":"validation","errorClass":"DataConnectorError::DuplicateDataConnectorDefinition","httpStatus":null,"severity":"error","filePath":"v3/crates/metadata-resolve/src/stages/data_connectors/error.rs","lineNumber":22,"sourceCode":"use 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(\n        \"The version specified in the capabilities (\\\"{version}\\\") is an invalid version: {error}\"\n    )]\n    InvalidNdcVersion {\n        version: String,\n        error: semver::Error,\n    },\n    #[error(\n        \"The version specified in the capabilities (\\\"{version}\\\") is not compatible with the schema version specified. The version requirement is {requirement}\"","sourceCodeStart":4,"sourceCodeEnd":40,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/data_connectors/error.rs#L4-L40","documentation":"The same data connector name is defined more than once in metadata. Connector names must be unique so resolution is deterministic.","triggerScenarios":"Two data connector definitions sharing the same qualified name in the metadata source.","commonSituations":"Appending a connector block instead of editing the existing one; merging metadata files with overlapping connectors.","solutions":["Search metadata for repeated connector names","Remove or rename the duplicate definition","Rebuild"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"let mut seen = HashSet::new();\nfor c in &connectors { assert!(seen.insert(c.name.clone()), \"duplicate connector\"); }","typeGuard":null,"tryCatchPattern":"Catch DataConnectorError::DuplicateDataConnectorDefinition and report the duplicated name.","preventionTips":["Maintain a canonical list of connectors","Use a linter on metadata merges"],"tags":["data-connector","duplicate","metadata"],"backgroundTag":"duplicate-definition","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}