hasura/graphql-engine · warning · DataConnectorIssue::InvalidNdcV01Version

The version specified in the capabilities ("{version}") is a

Error message

The version specified in the capabilities ("{version}") is an invalid version: {error}. Consider upgrading the data connector to the latest version to fix this.

What it means

A v0.1-era issue variant: the version string in capabilities is not valid SemVer, reported as an issue (potentially warning-level) with an explicit hint to upgrade the connector. Distinct from the hard error variant, it targets legacy v0.1 connectors.

Source

Thrown at v3/crates/metadata-resolve/src/stages/data_connectors/error.rs:63

    },
}

#[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)
    }
}

#[derive(Debug, thiserror::Error)]
pub enum DataConnectorIssue {
    #[error(
        "The version specified in the capabilities (\"{version}\") is an invalid version: {error}. Consider upgrading the data connector to the latest version to fix this."
    )]
    InvalidNdcV01Version {
        version: String,
        error: semver::Error,
    },
}
impl ShouldBeAnError for DataConnectorIssue {
    fn should_be_an_error(&self, flags: &flags::OpenDdFlags) -> bool {
        match self {
            DataConnectorIssue::InvalidNdcV01Version { .. } => {
                flags.contains(flags::Flag::RequireValidNdcV01Version)
            }
        }
    }
}

View on GitHub (pinned to 724551b9ae)

Solutions

  1. Upgrade the data connector to the latest version (as the message suggests)
  2. If upgrading isn't possible, use a connector shim reporting a valid SemVer version
  3. Suppress via flags only as a stopgap
Defensive patterns

Strategy: validation

Validate before calling

if connector.is_v01_legacy() { semver::Version::parse(&capabilities.version)?; }

Try / catch

Catch InvalidNdcV01Version as a warning; schedule connector upgrade rather than failing the build.

Prevention

When it happens

Trigger: Resolving a legacy v0.1 data connector whose capabilities contain an unparseable version string.

Common situations: Legacy connectors deployed before NDC versioning was standardized.

Related errors


AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28). Data as JSON: /api/errors/973bd217e3233349. Report an issue: GitHub.