Report #3882
[bug\_fix] runtime error: invalid memory address or nil pointer dereference
Initialize the pointer, map, slice, or interface before use. If the variable is declared but not assigned, create it with \`&T\{\}\`, \`make\(...\)\`, or a constructor. For optional fields, add a nil check before dereferencing. Enable \`go vet\` and static analysis in CI to catch some nil flows before runtime.
Journey Context:
A new endpoint panicked intermittently with \`runtime error: invalid memory address or nil pointer dereference\` at the line \`config.Timeout.Seconds\(\)\`. The developer added defensive nil checks and recovered the panic, which masked the bug and caused configs to silently use zero timeouts. After reproducing locally with a minimal test, they saw that a helper function returned a \`\*Config\` in one branch but fell through to \`return nil\` in an edge case the tests had never exercised. The caller assumed the helper always returned a valid pointer. Fixing the helper to return a non-nil default config and adding an explicit nil guard at the call site eliminated the panic. The lesson was that Go zero-initializes pointers to nil, so any function returning a pointer must document and handle its nil case.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T18:27:21.525476+00:00— report_created — created