{"record":{"id":"e998628916e3cc73","repo":"golang/go","slug":"can-t-resolve-export-s","errorCode":null,"errorMessage":"can't resolve export %s","messagePattern":"can't resolve export (.+?)","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cmd/export/main.go","lineNumber":145,"sourceCode":"\treturn cfg, nil\n}\n\nfunc makeTypesImporter(cfg *config, fset *token.FileSet) types.Importer {\n\timports := make(map[string]*types.Package)\n\timports[\"unsafe\"] = types.Unsafe\n\treturn importerFunc(func(importPath string) (*types.Package, error) {\n\t\tpkgPath, ok := cfg.ImportMap[importPath]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"can't resolve import %s\", importPath)\n\t\t}\n\t\t// Check for cache hit.\n\t\tif pkg, ok := imports[pkgPath]; ok && pkg.Complete() {\n\t\t\treturn pkg, nil\n\t\t}\n\t\t// Miss.\n\t\tcfgPath, ok := cfg.PackageFile[pkgPath]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"can't resolve export %s\", pkgPath)\n\t\t}\n\t\tf, err := os.Open(cfgPath)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdefer f.Close()\n\t\treturn gcexportdata.Read(f, fset, imports, pkgPath)\n\t})\n}\n\ntype importerFunc func(string) (*types.Package, error)\n\nfunc (f importerFunc) Import(path string) (*types.Package, error) { return f(path) }\n","sourceCodeStart":127,"sourceCodeEnd":159,"githubUrl":"https://github.com/golang/go/blob/b6b368adc57c96c3151d224d172029f233ead2c3/src/cmd/export/main.go#L127-L159","documentation":"Thrown by the same types.Importer closure after ImportMap successfully maps an import path to a package path. The exporter then looks up that package path in cfg.PackageFile to find the file holding the dependency's compiled export data. If the package path is absent from PackageFile, no export-data file is available and type-checking cannot proceed. `go list -export` is responsible for recording every transitive dependency's export file here.","triggerScenarios":"A package being exported imports a dependency whose export-data file was not recorded in cfg.PackageFile. This occurs when the dependency was not itself exported before this package, when it was filtered out, or when the config was generated for only a subset of the dependency graph.","commonSituations":"Partial/stale configs; exporting a package before its dependencies; -mod=vendor mismatches where a vendored dep lacks export data; running `go tool export` on a config produced by a narrower `go list -export` invocation.","solutions":["Re-run `go list -export` over the full relevant package set so each dependency's export data is built and recorded in PackageFile.","Build/export dependencies in topological (import) order so each package's deps already have export data.","Keep -mod/-modfile/vendor/GOFLAGS consistent between list and export.","Inspect the config: confirm every pkgPath returned by ImportMap has an entry in PackageFile."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Ensure each package path from ImportMap has export data in PackageFile.\nfor _, pkgPath := range cfg.ImportMap {\n    if _, ok := cfg.PackageFile[pkgPath]; !ok {\n        return fmt.Errorf(\"package %s has no export-data file; export dependencies first\", pkgPath)\n    }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Run `go list -export` over the full relevant package set so all deps are built.","Export dependencies before dependents (topological order).","Keep -mod/-modfile/vendor settings consistent across list and export."],"tags":["go-toolchain","export","importer","dependencies","go-list","build-order"],"backgroundTag":null,"analyzedSha":"b6b368adc57c96c3151d224d172029f233ead2c3","analyzedAt":"2026-08-12T00:22:02.250Z","schemaVersion":2},"datasetVersion":"2026-08-12T12:31:55.035Z"}