hasura/graphql-engine · error · DataConnectorError::IncompatibleNdcVersion
The version specified in the capabilities ("{version}") is n
Error message
The version specified in the capabilities ("{version}") is not compatible with the schema version specified. The version requirement is {requirement} What it means
The capabilities' SemVer version is parseable but does not satisfy the version requirement this build expects for the NDC schema, making the connector incompatible.
Source
Thrown at v3/crates/metadata-resolve/src/stages/data_connectors/error.rs:39
pub enum DataConnectorError {
#[error("the data connector is defined more than once")]
DuplicateDataConnectorDefinition,
#[error("The url for the data connector is invalid: {error}")]
InvalidDataConnectorUrl { error: url::ParseError },
#[error("Invalid header name {header_name} specified")]
InvalidHeaderName { header_name: String },
#[error("Invalid value specified for header {header_name}")]
InvalidHeaderValue { header_name: String },
#[error("{0}")]
NdcValidationError(NDCValidationError),
#[error(
"The version specified in the capabilities (\"{version}\") is an invalid version: {error}"
)]
InvalidNdcVersion {
version: String,
error: semver::Error,
},
#[error(
"The version specified in the capabilities (\"{version}\") is not compatible with the schema version specified. The version requirement is {requirement}"
)]
IncompatibleNdcVersion {
version: String,
requirement: semver::VersionReq,
},
}
#[derive(Debug, thiserror::Error)]
#[error("The data connector {data_connector_name} has an issue: {issue}")]
pub struct NamedDataConnectorIssue {
pub data_connector_name: Qualified<DataConnectorName>,
pub issue: DataConnectorIssue,
}
impl ShouldBeAnError for NamedDataConnectorIssue {
fn should_be_an_error(&self, flags: &flags::OpenDdFlags) -> bool {
self.issue.should_be_an_error(flags)View on GitHub (pinned to 724551b9ae)
Solutions
- Check the reported version vs the stated requirement
- Upgrade (or pin) the data connector to a compatible version
- Alternatively use a platform version matching the connector
Defensive patterns
Strategy: validation
Validate before calling
let req: semver::VersionReq = REQUIRED.parse()?; assert!(req.matches(&semver::Version::parse(&capabilities.version)?));
Try / catch
Catch IncompatibleNdcVersion and suggest connector upgrade/downgrade paths based on the requirement string.
Prevention
- Track the platform's supported connector version range in release notes
- Upgrade connectors in lockstep with platform upgrades
When it happens
Trigger: Connector reports a version outside the supported range, e.g. an old 0.x connector with a build requiring ^1.x.
Common situations: Upgrading the platform without upgrading connectors, or vice versa; version skew between CLI/engine and connector.
Related errors
- The version specified in the capabilities ("{version}") is a
- The version specified in the capabilities ("{version}") is a
- unable to parse server endpoint: %w
- cannot update from a non-semver version: %s
- unable to parse version: %w
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/3b6682ec70686f75.
Report an issue: GitHub.