{"record":{"id":"d942eba76c938042","repo":"hasura/graphql-engine","slug":"unable-to-parse-server-endpoint-w","errorCode":null,"errorMessage":"unable to parse server endpoint: %w","messagePattern":"unable to parse server endpoint: %w","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/cli.go","lineNumber":1035,"sourceCode":"\t\tMigrationsDirectory: v.GetString(\"migrations_directory\"),\n\t\tSeedsDirectory:      v.GetString(\"seeds_directory\"),\n\t\tActionConfig: &types.ActionExecutionConfig{\n\t\t\tKind:                  v.GetString(\"actions.kind\"),\n\t\t\tHandlerWebhookBaseURL: v.GetString(\"actions.handler_webhook_baseurl\"),\n\t\t\tCodegen: &types.CodegenExecutionConfig{\n\t\t\t\tFramework: v.GetString(\"actions.codegen.framework\"),\n\t\t\t\tOutputDir: v.GetString(\"actions.codegen.output_dir\"),\n\t\t\t\tURI:       v.GetString(\"actions.codegen.uri\"),\n\t\t\t},\n\t\t},\n\t}\n\tif !ec.Config.Version.IsValid() {\n\t\treturn errors.E(op, ErrInvalidConfigVersion)\n\t}\n\n\terr = ec.Config.ParseEndpoint()\n\tif err != nil {\n\t\treturn errors.E(op, fmt.Errorf(\"unable to parse server endpoint: %w\", err))\n\t}\n\n\treturn nil\n}\n\n// setupSpinner creates a default spinner if the context does not already have\n// one.\nfunc (ec *ExecutionContext) setupSpinner() {\n\tif ec.Spinner == nil {\n\t\tspnr := spinner.New(spinner.CharSets[7], 100*time.Millisecond)\n\t\tspnr.Writer = ec.Stderr\n\t\tec.Spinner = spnr\n\t}\n}\n\n// Spin stops any existing spinner and starts a new one with the given message.\nfunc (ec *ExecutionContext) Spin(message string) {\n\tif ec.IsTerminal {","sourceCodeStart":1017,"sourceCodeEnd":1053,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/cli/cli.go#L1017-L1053","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Inspect the wrapped NDCValidationError details for the specific violation","Update the data connector to a version whose metadata conforms to the expected ndc-spec","Regenerate the connector's capabilities/schema files rather than hand-editing them"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"match resolve(&md) {\n    Err(ResolveError::NDCValidationError(v)) => {\n        eprintln!(\"connector spec violations: {v:#?}\");\n        // fix connector metadata, then re-resolve\n        return;\n    }\n    r => r,\n}","preventionTips":["Run ndc-spec validators against your connector during connector CI","Prefer generated capabilities/schema files over hand-edited ones; pin connector and ndc-spec versions together"],"tags":["metadata","data-connectors","ndc","validation"],"backgroundTag":"connector-schema-validation-failed","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}