{"record":{"id":"93959b727aabb91a","repo":"GoogleContainerTools/skaffold","slug":"not-implemented-error-skaffoldrunner-v2-generate","errorCode":null,"errorMessage":"not implemented error: SkaffoldRunner(v2).GeneratePipeline","messagePattern":"not implemented error: SkaffoldRunner\\(v2\\)\\.GeneratePipeline","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/runner/generate_pipeline.go","lineNumber":28,"sourceCode":"Unless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runner\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/GoogleContainerTools/skaffold/v2/pkg/skaffold/schema/util\"\n)\n\nfunc (r *SkaffoldRunner) GeneratePipeline(ctx context.Context, out io.Writer, configs []util.VersionedConfig, configPaths []string, fileOut string) error {\n\treturn fmt.Errorf(\"not implemented error: SkaffoldRunner(v2).GeneratePipeline\")\n}\n","sourceCodeStart":10,"sourceCodeEnd":30,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/runner/generate_pipeline.go#L10-L30","documentation":"SkaffoldRunner (the v2 runner) does not implement pipeline generation; GeneratePipeline is only implemented by the v1 runner. Any call on the v2 runner immediately returns this fixed 'not implemented error'. This is a deliberate stub, not a runtime condition.","triggerScenarios":"Invoking `skaffold generate-pipeline` (or calling SkaffoldRunner.GeneratePipeline directly) while running under the v2 API/config path, where the command is routed to the v2 runner.","commonSituations":"Running `skaffold generate-pipeline` with a skaffold v2 binary or with a v2-schema skaffold.yaml (apiVersion skaffold/v2*), so the v2 runner is selected; CI scripts still calling the v1-only command after upgrading skaffold.","solutions":["Do not use generate-pipeline with a v2 skaffold binary; run it with a v1 (v0.x/v1.x) skaffold release","Convert any v1-schema skaffold.yaml the command needs, or keep a v1 binary side-by-side for this one command","Replace CI usage of generate-pipeline with an alternative (e.g. generate CI config via skaffold's newer tooling or your own templating)","If you control the caller, guard the call and surface a clear 'unsupported in v2' message"],"exampleFix":"// before (v2 binary)\n$ skaffold generate-pipeline --ansible-inventory=inv\n// error: not implemented error: SkaffoldRunner(v2).GeneratePipeline\n// after: use a v1 binary for this command\n$ curl -Lo skaffold-v1 https://storage.googleapis.com/skaffold/releases/v1.39.5/skaffold-linux-amd64\n$ ./skaffold-v1 generate-pipeline --ansible-inventory=inv","handlingStrategy":"fallback","validationCode":"// skip generate-pipeline on v2\nif strings.HasPrefix(binaryVersion, \"v2\") || apiVersion == \"skaffold/v2...\" {\n    return errors.New(\"generate-pipeline is only supported by skaffold v1\")\n}","typeGuard":"func isNotImplementedErr(err error) bool {\n    return err != nil && strings.Contains(err.Error(), \"not implemented error: SkaffoldRunner(v2)\")\n}","tryCatchPattern":"if err := runner.GeneratePipeline(ctx, out, configs, paths, fileOut); isNotImplementedErr(err) {\n    // fall back to a v1 skaffold binary or an alternative generator\n    return runV1GeneratePipeline()\n}","preventionTips":["Check `skaffold version` before calling v1-only commands in scripts","Keep generate-pipeline usage pinned to a v1 binary","Migrate CI to v2-supported workflows","Feature-detect via command help output before invoking"],"tags":["skaffold","not-implemented","v2","pipeline-generation"],"backgroundTag":"not-implemented","analyzedSha":"a1189de023efc32d4b8e11f395acc678aa555011","analyzedAt":"2026-09-05T12:09:27.064Z","contentChangedAt":"2026-09-05T12:09:27.064Z","schemaVersion":2},"datasetVersion":"2026-09-12T17:17:11.597Z"}