diff --git a/gopls/internal/lsp/cache/analysis.go b/gopls/internal/lsp/cache/analysis.go
index e7f2d41..ffd1405 100644
--- a/gopls/internal/lsp/cache/analysis.go
+++ b/gopls/internal/lsp/cache/analysis.go
@@ -361,19 +361,20 @@
 	var result interface{}
 	var err error
 	func() {
-		// Set this flag temporarily when debugging crashes.
-		// See https://github.com/golang/go/issues/54762.
-		const norecover = false
-		if norecover {
-			debug.SetTraceback("all") // show all goroutines
-		} else {
-			defer func() {
-				if r := recover(); r != nil {
-					// Use bug.Errorf so that we detect panics during testing.
-					err = bug.Errorf("analysis %s for package %s panicked: %v", analyzer.Name, pkg.PkgPath(), r)
+		defer func() {
+			if r := recover(); r != nil {
+				// An Analyzer crashed. This is often merely a symptom
+				// of a problem in package loading.
+				if bug.PanicOnBugs {
+					// During testing, crash. See issues 54762, 56035.
+					debug.SetTraceback("all") // show all goroutines
+					panic(r)
+				} else {
+					// In production, suppress the panic and press on.
+					err = fmt.Errorf("analysis %s for package %s panicked: %v", analyzer.Name, pkg.PkgPath(), r)
 				}
-			}()
-		}
+			}
+		}()
 		result, err = pass.Analyzer.Run(pass)
 	}()
 	if err != nil {
