hasura/graphql-engine · error

unable to parse server endpoint: %w

Error message

unable to parse server endpoint: %w

What it means

The underlying NDC (Native Data Connector) specification validation of a data connector link/schema failed, and the error is wrapped with this variant. The {0} payload carries the NDC validation report detailing which capabilities/schemas violated the NDC spec.

Source

Thrown at cli/cli.go:1035

		MigrationsDirectory: v.GetString("migrations_directory"),
		SeedsDirectory:      v.GetString("seeds_directory"),
		ActionConfig: &types.ActionExecutionConfig{
			Kind:                  v.GetString("actions.kind"),
			HandlerWebhookBaseURL: v.GetString("actions.handler_webhook_baseurl"),
			Codegen: &types.CodegenExecutionConfig{
				Framework: v.GetString("actions.codegen.framework"),
				OutputDir: v.GetString("actions.codegen.output_dir"),
				URI:       v.GetString("actions.codegen.uri"),
			},
		},
	}
	if !ec.Config.Version.IsValid() {
		return errors.E(op, ErrInvalidConfigVersion)
	}

	err = ec.Config.ParseEndpoint()
	if err != nil {
		return errors.E(op, fmt.Errorf("unable to parse server endpoint: %w", err))
	}

	return nil
}

// setupSpinner creates a default spinner if the context does not already have
// one.
func (ec *ExecutionContext) setupSpinner() {
	if ec.Spinner == nil {
		spnr := spinner.New(spinner.CharSets[7], 100*time.Millisecond)
		spnr.Writer = ec.Stderr
		ec.Spinner = spnr
	}
}

// Spin stops any existing spinner and starts a new one with the given message.
func (ec *ExecutionContext) Spin(message string) {
	if ec.IsTerminal {

View on GitHub (pinned to 724551b9ae)

Solutions

  1. Inspect the wrapped NDCValidationError details for the specific violation
  2. Update the data connector to a version whose metadata conforms to the expected ndc-spec
  3. Regenerate the connector's capabilities/schema files rather than hand-editing them
Defensive patterns

Strategy: try-catch

Try / catch

match resolve(&md) {
    Err(ResolveError::NDCValidationError(v)) => {
        eprintln!("connector spec violations: {v:#?}");
        // fix connector metadata, then re-resolve
        return;
    }
    r => r,
}

Prevention

When it happens

Trigger: Calling metadata resolution where a data connector's schema/functions metadata fails NDC-spec validation, e.g. inconsistent function signatures, invalid object types in the NDC schema, or capability mismatches reported by ndc-spec validators.

Common situations: Custom data connectors emitting non-conformant capability/schema JSON; upgrading a connector whose output no longer matches the supported ndc-spec version; hand-edited connector metadata.

Understand the failure class

Related errors


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