{"record":{"id":"432f5a54256b878e","repo":"apache/beam","slug":"couldn-t-find-the-following-identifiers-please-check-for","errorCode":null,"errorMessage":"couldn't find the following identifiers; please check for typos, or remove them: %v","messagePattern":"couldn't find the following identifiers; please check for typos, or remove them: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/go/pkg/beam/util/starcgenx/starcgenx.go","lineNumber":191,"sourceCode":"\t\t}\n\t}\n\n\te.Print(\"CHECKING DEFS\\n\")\n\tfor id, obj := range info.Defs {\n\t\te.fromObj(fset, id, obj, idsRequired, idsFound)\n\t}\n\te.Print(\"CHECKING USES\\n\")\n\tfor id, obj := range info.Uses {\n\t\te.fromObj(fset, id, obj, idsRequired, idsFound)\n\t}\n\tvar notFound []string\n\tfor _, k := range e.Ids {\n\t\tif !idsFound[k] {\n\t\t\tnotFound = append(notFound, k)\n\t\t}\n\t}\n\tif len(notFound) > 0 {\n\t\treturn errors.Errorf(\"couldn't find the following identifiers; please check for typos, or remove them: %v\", strings.Join(notFound, \", \"))\n\t}\n\te.Print(\"*/\\n\")\n\n\treturn nil\n}\n\ntype findRegisterDoFnCalls struct {\n\tinfo      *types.Info\n\te         *Extractor\n\tidsToFind map[string]bool\n}\n\nfunc (v findRegisterDoFnCalls) Visit(node ast.Node) (w ast.Visitor) {\n\tswitch node := node.(type) {\n\tcase *ast.CallExpr:\n\t\tif !v.isRegisterDoFnCall(node) {\n\t\t\treturn v\n\t\t}","sourceCodeStart":173,"sourceCodeEnd":209,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/go/pkg/beam/util/starcgenx/starcgenx.go#L173-L209","documentation":"After type-checking, starcgenx.FromAsts verifies that every identifier listed in e.Ids was actually found in the package. Any identifier that the type-checker could not resolve is reported so the developer can fix typos or drop stale entries.","triggerScenarios":"Calling FromAsts with a config whose Ids include names that don't exist in the analyzed package's ASTs (renamed, deleted, or misspelled symbols).","commonSituations":"Renaming a DoFn or symbol without updating the starcgenx ID list; removing an identifier from the source but leaving it in the generator config; typos when first writing the config.","solutions":["Fix the spelling of the identifiers named in the error message.","Remove identifiers from the Ids list that no longer exist in the target package.","Regenerate against the current package source after refactoring renames."],"exampleFix":"// before\ne.Ids = []string{\"ParDoFn\", \"ParDoFn2\"} // ParDoFn2 removed from source\n// after\ne.Ids = []string{\"ParDoFn\"}","handlingStrategy":"validation","validationCode":"// Verify each configured identifier exists before generation:\n// grep -R \"<identifier>\" ./path/to/pkg  for each name in e.Ids","typeGuard":null,"tryCatchPattern":"if err := starcgenx.FromAsts(e, fset, files); err != nil {\n    // error lists the missing identifiers joined by commas; fix or remove each\n    return fmt.Errorf(\"starcgenx: %w\", err)\n}","preventionTips":["Update the Ids list in the same commit that renames or deletes symbols.","Use go refactoring tools (gopls rename) so config references stay consistent.","Keep generator config close to the package source to reduce drift."],"tags":["go","code-generation","identifier-resolution"],"backgroundTag":"entity-not-found","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}