{"record":{"id":"0bd02d43054a3fad","repo":"apache/beam","slug":"no-symbol-q","errorCode":null,"errorMessage":"no symbol %q","messagePattern":"no symbol %q","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/go/pkg/beam/core/util/symtab/symtab.go","lineNumber":176,"sourceCode":"\tframe, _ := frames.Next()\n\treturn frame.Func.Name()\n}\n\n// Addr2Sym returns the symbol name for the provided address.\nfunc (s *SymbolTable) Addr2Sym(addr uintptr) (string, error) {\n\taddr -= s.offset\n\tsym, ok := s.addr2Sym[addr]\n\tif !ok {\n\t\treturn \"\", errors.Errorf(\"no symbol found at address %x\", addr)\n\t}\n\treturn sym, nil\n}\n\n// Sym2Addr returns the address of the provided symbol name.\nfunc (s *SymbolTable) Sym2Addr(symbol string) (uintptr, error) {\n\taddr, ok := s.sym2Addr[symbol]\n\tif !ok {\n\t\treturn 0, errors.Errorf(\"no symbol %q\", symbol)\n\t}\n\treturn addr + s.offset, nil\n}\n","sourceCodeStart":158,"sourceCodeEnd":180,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/go/pkg/beam/core/util/symtab/symtab.go#L158-L180","documentation":"SymbolTable.Sym2Addr returns the address for a symbol name. This error means the symbol name string is not a key in the table's sym2Addr map — the named function was never registered or does not exist in this binary.","triggerScenarios":"Calling Sym2Addr with a misspelled function name, an unexported/inlined function not present in the table, or a symbol from a package not linked into the binary that built the table (New calls Sym2Addr internally).","commonSituations":"Typo'd fully-qualified Go symbol names in configuration, function renamed after a refactor, or symbol dead-code-eliminated by the linker.","solutions":["Check the exact symbol spelling including package path (e.g. github.com/apache/beam/sdks/go/pkg/beam.func)","Confirm the function is actually linked in (not eliminated by the linker) and referenced somewhere","List the table's known symbols (or use addr2name tooling) to find the correct name"],"exampleFix":"// before\naddr, err := table.Sym2Addr(\"beam.createFn.Call\") // typo\n// after\naddr, err := table.Sym2Addr(\"github.com/apache/beam/sdks/go/pkg/beam.(*createFn).Call\")","handlingStrategy":"validation","validationCode":"if symbol == \"\" { return errors.New(\"empty symbol name\") } // and verify symbol exists in table before use","typeGuard":"func hasSym(s *symtab.SymbolTable, name string) bool { _, err := s.Sym2Addr(name); return err == nil }","tryCatchPattern":"addr, err := table.Sym2Addr(symbol)\nif err != nil { return fmt.Errorf(\"cannot resolve %q: %w\", symbol, err) }","preventionTips":["Use fully-qualified Go symbol names copied from the source, including package path","Account for method receivers: (*T).M vs T.M forms","Avoid referencing symbols that the linker may dead-code-eliminate"],"tags":["symbol-table","lookup-failed","go"],"backgroundTag":"record-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"}