Closed
Description
After updating to Coder 0.25.0, I get the following error from time to with no obvious cause. Accessing Coder returns HTTP 500 with the following error message:
{"message":"An internal server error occurred."}
The Coder pod's log contains this error:
2023-07-06 14:11:40.632 [warn] coderd: panic serving http request (recovered) panic="runtime error: invalid memory address or nil pointer dereference" ...
stack= goroutine 909 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.20.5/x64/src/runtime/debug/stack.go:24 +0x65
github.com/coder/coder/coderd/httpmw.Recover.func1.1.1()
/home/runner/actions-runner/_work/coder/coder/coderd/httpmw/recover.go:28 +0x105
panic({0x2397be0, 0xb91fae0})
/opt/hostedtoolcache/go/1.20.5/x64/src/runtime/panic.go:884 +0x213
github.com/coder/coder/coderd/httpmw.ExtractAPIKey({0xa53ba50?, 0xc0115007d0?}, 0xc01150ca00, {{0xa5d57e0, 0xc000f25f00}, 0x0, 0x0, 0x0, 0x1, 0x0})
/home/runner/actions-runner/_work/coder/coder/coderd/httpmw/apikey.go:245 +0xace
github.com/coder/coder/site.(*Handler).renderHTMLWithState(0xc000f1ed70, {0xa53ba50, 0xc0115007d0}, 0xc01150ca00, {0xc000864f54, 0x0}, {{{0xc000824fc0, 0x58}}, {0xc0000387e0, 0xe0}, ...})
/home/runner/actions-runner/_work/coder/coder/site/site.go:292 +0x185
github.com/coder/coder/site.(*Handler).serveHTML(0xc000ecbfc0?, {0xa53ba50, 0xc0115007d0}, 0x20?, {0xc000864f54, 0x0}, {{{0xc000824fc0, 0x58}}, {0xc0000387e0, 0xe0}, ...})
/home/runner/actions-runner/_work/coder/coder/site/site.go:267 +0x7e
github.com/coder/coder/site.(*Handler).ServeHTTP(0xc000f1ed70, {0xa53ba50, 0xc0115007d0}, 0xc01150ca00)
/home/runner/actions-runner/_work/coder/coder/site/site.go:172 +0x145
github.com/go-chi/chi/v5/middleware.(*Compressor).Handler.func1({0xa53b7b0?, 0xc000a954c0}, 0xc01150ca00)
/home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.8/middleware/compress.go:213 +0x271
net/http.HandlerFunc.ServeHTTP(0x2564fe0?, {0xa53b7b0?, 0xc000a954c0?}, 0x17?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/coder/coder/coderd/httpmw.CSPHeaders.func1.1({0xa53b7b0, 0xc000a954c0}, 0xc01150ca00)
/home/runner/actions-runner/_work/coder/coder/coderd/httpmw/csp.go:123 +0xcc7
net/http.HandlerFunc.ServeHTTP(0xc00033c768?, {0xa53b7b0?, 0xc000a954c0?}, 0xc000f3aa60?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
net/http.HandlerFunc.ServeHTTP(...)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122
github.com/go-chi/chi/v5.(*Mux).routeHTTP(0xc000d528a0, {0xa53b7b0, 0xc000a954c0}, 0xc01150ca00)
/home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.8/mux.go:450 +0x1f4
net/http.HandlerFunc.ServeHTTP(0xc0000c4000?, {0xa53b7b0?, 0xc000a954c0?}, 0x21?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/justinas/nosurf.(*CSRFHandler).handleSuccess(...)
/home/runner/go/pkg/mod/github.com/justinas/nosurf@v1.1.1/handler.go:187
github.com/justinas/nosurf.(*CSRFHandler).ServeHTTP(0xc00098e120, {0xa53b7b0, 0xc000a954c0}, 0x16?)
/home/runner/go/pkg/mod/github.com/justinas/nosurf@v1.1.1/handler.go:144 +0x634
github.com/coder/coder/coderd.New.func4.1({0xa53b7b0, 0xc000a954c0}, 0xc000c73610?)
/home/runner/actions-runner/_work/coder/coder/coderd/coderd.go:448 +0x128
net/http.HandlerFunc.ServeHTTP(0x0?, {0xa53b7b0?, 0xc000a954c0?}, 0x15?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/coder/coder/coderd.New.func3.1({0xa53b7b0, 0xc000a954c0}, 0xc000922fc0?)
/home/runner/actions-runner/_work/coder/coder/coderd/coderd.go:438 +0x133
net/http.HandlerFunc.ServeHTTP(0xc000b5c1e0?, {0xa53b7b0?, 0xc000a954c0?}, 0xc01150c900?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/go-chi/cors.(*Cors).Handler.func1({0xa53b7b0, 0xc000a954c0}, 0xc01150c900)
/home/runner/go/pkg/mod/github.com/go-chi/cors@v1.2.1/cors.go:228 +0x1bd
net/http.HandlerFunc.ServeHTTP(0xc000056119?, {0xa53b7b0?, 0xc000a954c0?}, 0x1c?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/coder/coder/coderd/workspaceapps.(*Server).parseHostname(0xc0003c0000, {0xa53b7b0, 0xc000a954c0}, 0x0?, {0xa52f900, 0xc000d4c460}, {0xc01151c060, 0x1c})
/home/runner/actions-runner/_work/coder/coder/coderd/workspaceapps/proxy.go:409 +0x122
github.com/coder/coder/coderd/workspaceapps.(*Server).HandleSubdomain.func1.1({0xa53b7b0, 0xc000a954c0}, 0xc01150c900)
/home/runner/actions-runner/_work/coder/coder/coderd/workspaceapps/proxy.go:360 +0x245
net/http.HandlerFunc.ServeHTTP(0x0?, {0xa53b7b0?, 0xc000a954c0?}, 0x0?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/coder/coder/coderd/httpmw.Prometheus.func1.1({0xa53b7b0?, 0xc000a954c0}, 0xc01150c900)
/home/runner/actions-runner/_work/coder/coder/coderd/httpmw/prometheus.go:90 +0x2f2
net/http.HandlerFunc.ServeHTTP(0xc0008650d0?, {0xa53b7b0?, 0xc000a954c0?}, 0xc000e491b8?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/coder/coder/coderd/httpmw.Logger.func1.1({0xa53b7b0?, 0xc000a954c0?}, 0xc01150c900)
/home/runner/actions-runner/_work/coder/coder/coderd/httpmw/logger.go:31 +0x41d
net/http.HandlerFunc.ServeHTTP(0xc0008650c0?, {0xa53b7b0?, 0xc000a954c0?}, 0xb9d5778?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/coder/coder/coderd/httpmw.ExtractRealIP.func1.1({0xa53b7b0, 0xc000a954c0}, 0xc01150c800)
/home/runner/actions-runner/_work/coder/coder/coderd/httpmw/realip.go:50 +0x21d
net/http.HandlerFunc.ServeHTTP(0x2564fe0?, {0xa53b7b0?, 0xc000a954c0?}, 0x12?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/coder/coder/coderd/httpmw.AttachRequestID.func1({0xa53b7b0, 0xc000a954c0}, 0xc01150c700)
/home/runner/actions-runner/_work/coder/coder/coderd/httpmw/requestid.go:33 +0x39c
net/http.HandlerFunc.ServeHTTP(0x0?, {0xa53b7b0?, 0xc000a954c0?}, 0x0?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/coder/coder/coderd/tracing.Middleware.func1.1({0xa53b7b0?, 0xc000a954c0?}, 0xc01150c700?)
/home/runner/actions-runner/_work/coder/coder/coderd/tracing/httpmw.go:40 +0x622
net/http.HandlerFunc.ServeHTTP(0x0?, {0xa53b7b0?, 0xc000a954c0?}, 0x0?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/coder/coder/coderd/tracing.StatusWriterMiddleware.func1({0xa540520?, 0xc0001be7e0}, 0xc000a44810?)
/home/runner/actions-runner/_work/coder/coder/coderd/tracing/status_writer.go:31 +0x93
net/http.HandlerFunc.ServeHTTP(0xc000a44850?, {0xa540520?, 0xc0001be7e0?}, 0xa539c68?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/coder/coder/coderd/httpmw.Recover.func1.1({0xa540520?, 0xc0001be7e0?}, 0x23381c0?)
/home/runner/actions-runner/_work/coder/coder/coderd/httpmw/recover.go:44 +0xd0
net/http.HandlerFunc.ServeHTTP(0xc000d59860?, {0xa540520?, 0xc0001be7e0?}, 0xc000a44920?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/go-chi/chi/v5.(*Mux).ServeHTTP(0xc000d528a0, {0xa540520, 0xc0001be7e0}, 0xc01150c700)
/home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.8/mux.go:73 +0x355
github.com/go-chi/chi/v5.(*Mux).Mount.func1({0xa540520, 0xc0001be7e0}, 0xc01150c700)
/home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.8/mux.go:316 +0x1c4
net/http.HandlerFunc.ServeHTTP(0x2378ec0?, {0xa540520?, 0xc0001be7e0?}, 0xc000864f54?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/go-chi/chi/v5.(*Mux).routeHTTP(0xc000811ce0, {0xa540520, 0xc0001be7e0}, 0xc01150c700)
/home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.8/mux.go:444 +0x216
net/http.HandlerFunc.ServeHTTP(0xa543c78?, {0xa540520?, 0xc0001be7e0?}, 0xb91f370?)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2122 +0x2f
github.com/go-chi/chi/v5.(*Mux).ServeHTTP(0xc000811ce0, {0xa540520, 0xc0001be7e0}, 0xc01150c600)
/home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.8/mux.go:90 +0x310
net/http.serverHandler.ServeHTTP({0xc000d594d0?}, {0xa540520, 0xc0001be7e0}, 0xc01150c600)
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:2936 +0x316
net/http.(*conn).serve(0xc000878cf0, {0xa543d20, 0xc0009b9ce0})
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:1995 +0x612
created by net/http.(*Server).Serve
/opt/hostedtoolcache/go/1.20.5/x64/src/net/http/server.go:3089 +0x5ed
Restarting the browser or deleting Coder's cookies resolves the problem.