{"record":{"id":"1d6461c5a02263fa","repo":"hyperledger/fabric","slug":"failed-to-calculate-dependencies-incomplete-packa","errorCode":null,"errorMessage":"failed to calculate dependencies: incomplete package: %s","messagePattern":"failed to calculate dependencies: incomplete package: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"core/chaincode/platforms/golang/list.go","lineNumber":81,"sourceCode":"\t\treturn nil, wrapExitErr(err, \"'go list -deps' failed\")\n\t}\n\tdecoder := json.NewDecoder(stdout)\n\n\tif err := cmd.Start(); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar list []PackageInfo\n\tfor {\n\t\tvar packageInfo PackageInfo\n\t\tif err := decoder.Decode(&packageInfo); errors.Is(err, io.EOF) {\n\t\t\tbreak\n\t\t} else if err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif packageInfo.Incomplete {\n\t\t\treturn nil, fmt.Errorf(\"failed to calculate dependencies: incomplete package: %s\", packageInfo.ImportPath)\n\t\t}\n\t\tif !packageInfo.Goroot {\n\t\t\tlist = append(list, packageInfo)\n\t\t}\n\t}\n\n\terr = cmd.Wait()\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"listing deps for package %s failed\", pkg)\n\t}\n\n\treturn list, nil\n}\n\nfunc wrapExitErr(err error, message string) error {\n\tif ee, ok := err.(*exec.ExitError); ok {\n\t\treturn errors.Wrapf(err, message+\" with: %s\", strings.TrimRight(string(ee.Stderr), \"\\n\\r\\t\"))\n\t}","sourceCodeStart":63,"sourceCodeEnd":99,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/core/chaincode/platforms/golang/list.go#L63-L99","documentation":"During golang chaincode dependency calculation, 'go list' reports a package as Incomplete; the platform returns this error instead of building. It means the go toolchain could not fully resolve imports (missing dependency or unresolvable package) while listing transitive deps for the chaincode.","triggerScenarios":"GetDeploymentPayload on the golang platform calls gopathDependencyPackageInfo running 'go list -deps -f ...'; any returned packageInfo with Incomplete=true triggers the error naming the ImportPath.","commonSituations":"vendor directory out of sync with go.mod (old GOPATH-style build); missing import that was never vendored; broken/renamed dependency; GOPATH mode used with a package that requires modules.","solutions":["Run 'go mod vendor' in the chaincode source so the vendor tree contains all imports","Fix or remove the missing import reported by the ImportPath in the message","Ensure the chaincode builds locally: 'go build ./...' before packaging","Match the build mode to the source: GOPATH legacy chaincodes should not mix with module-style imports"],"exampleFix":"// before\nvendor/github.com/foo/bar  (missing new dep)\n// after\n$ go mod tidy && go mod vendor","handlingStrategy":"validation","validationCode":"cmd := exec.Command(\"go\", \"build\", \"./...\")\nif out, err := cmd.CombinedOutput(); err != nil {\n  return fmt.Errorf(\"package incomplete: %v: %s\", err, out)\n}\n// also: go mod verify && test -d vendor || true","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Run go mod tidy && go mod vendor before packaging","Build the chaincode locally before install","Keep vendor/ in sync with go.mod","Avoid mixing GOPATH and module modes"],"tags":["golang","dependencies","chaincode-build","fabric"],"backgroundTag":"incomplete-package","analyzedSha":"2736b63f8fd5932511d56fe68b7039d15977f7f6","analyzedAt":"2026-09-04T08:52:36.465Z","contentChangedAt":"2026-09-04T08:52:36.465Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}