go network_error ai_generated true

error: net/http: TLS handshake timeout

ID: go/net-http-tls-handshake-timeout

Also available as: JSON · Markdown · 中文
80%Fix Rate
84%Confidence
0Evidence
2024-09-05First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
1.20 active
1.21 active

Root Cause

The TLS handshake with the server did not complete within the configured timeout, often due to network latency or server overload.

generic

中文

与服务器的TLS握手未在配置的超时内完成,通常由于网络延迟或服务器过载。

Workarounds

  1. 90% success Set a reasonable TLS handshake timeout and use retry with backoff
    transport := &http.Transport{
        TLSHandshakeTimeout: 10 * time.Second,
    }
    client := &http.Client{Transport: transport}
    // retry with exponential backoff

Dead Ends

Common approaches that don't work:

  1. Increasing timeout indefinitely 50% fail

    May mask underlying network issues; better to handle with retry logic.