{"record":{"id":"15a276ada6407f9e","repo":"kubernetes/kops","slug":"unable-to-find-task-q-referenced-from-s-s","errorCode":null,"errorMessage":"unable to find task %q, referenced from %s:%s","messagePattern":"unable to find task %q, referenced from (.+?):(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/loader.go","lineNumber":95,"sourceCode":"\t\t\t\tif v.CanInterface() && !v.IsNil() {\n\t\t\t\t\t// TODO: Can we / should we use a type-switch statement\n\t\t\t\t\tintf := v.Interface()\n\t\t\t\t\tif hn, ok := intf.(fi.HasName); ok {\n\t\t\t\t\t\tname := hn.GetName()\n\t\t\t\t\t\tif name != nil {\n\t\t\t\t\t\t\ttypeNameForTask := fi.TypeNameForTask(intf)\n\t\t\t\t\t\t\tprimary := l.tasks[typeNameForTask+\"/\"+*name]\n\t\t\t\t\t\t\tif primary == nil {\n\t\t\t\t\t\t\t\tkeys := sets.NewString()\n\t\t\t\t\t\t\t\tfor k := range l.tasks {\n\t\t\t\t\t\t\t\t\tkeys.Insert(k)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tklog.Infof(\"Known tasks:\")\n\t\t\t\t\t\t\t\tfor _, k := range keys.List() {\n\t\t\t\t\t\t\t\t\tklog.Infof(\"  %s\", k)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn fmt.Errorf(\"unable to find task %q, referenced from %s:%s\", typeNameForTask+\"/\"+*name, taskKey, path)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tklog.V(11).Infof(\"Replacing task %q at %s:%s\", *name, taskKey, path)\n\t\t\t\t\t\t\tv.Set(reflect.ValueOf(primary))\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn reflectutils.SkipReflection\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn nil\n\t\t}\n\n\t\terr := reflectutils.ReflectRecursive(taskValue, visitor, &reflectutils.ReflectOptions{DeprecatedDoubleVisit: true})\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"unexpected error resolving task %q: %v\", taskKey, err)\n\t\t}\n\t}","sourceCodeStart":77,"sourceCodeEnd":113,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/loader.go#L77-L113","documentation":"The loader's task-resolution pass fires this when a task field references another task by type/name (via HasName) that is not present in l.tasks. The referenced task was never built or its name mismatches, so cross-task links cannot be wired; known task keys are logged to aid debugging.","triggerScenarios":"Thrown at upup/pkg/fi/cloudup/loader.go:95 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the referenced task's type and name spelling against the logged list of known tasks","Ensure the referenced task is actually created during BuildTasks","Fix the manifest/spec so the referenced task exists"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T07:17:12.445Z"}