go system_error ai_generated true

error: http: Server closed

ID: go/net-http-server-shutdown-graceful-timeout

Also available as: JSON · Markdown · 中文
80%Fix Rate
86%Confidence
0Evidence
2025-05-10First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
1.20 active
1.21 active

Root Cause

The HTTP server was shut down while handling requests, causing in-flight requests to fail with 'Server closed'.

generic

中文

HTTP服务器在处理请求时关闭,导致正在进行的请求失败并返回“服务器已关闭”。

Workarounds

  1. 95% success Use Shutdown with a context timeout and wait for connections to drain
    ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
    defer cancel()
    if err := server.Shutdown(ctx); err != nil { log.Fatal(err) }

Dead Ends

Common approaches that don't work:

  1. Using Shutdown without waiting for active connections 70% fail

    Active connections are terminated abruptly; use Shutdown with context.