- Fixed missing retries on transient HTTP failures when fetching an OAuth access token from the IdP token endpoint (
OAUTH_CLIENT_CREDENTIALSandOAUTH_AUTHORIZATION_CODE). Token requests now retry transport errors, HTTP 408/429, and 5xx responses (SNOW-3984430, #3003). - Fixed a bug where a TLS handshake terminated by the peer (
SSLErrorcontainingSysCallError(-1, 'Unexpected EOF')) was classified as non-retryable and surfaced as anOperationalError, unlikeECONNRESET. Such handshakeUnexpected EOFerrors are now retried, on both the sync and async request paths (SNOW-4058589). - Fixed
fetchone(),fetchmany(),fetchall()and cursor iteration silently returning an incomplete result set. A downloaded result chunk holding fewer rows than the back-end reported just ended the iteration, which the fetch methods report as a normal end of results, so callers received fewer rows than the query produced with no exception raised. Such a chunk now raises anOperationalError(errno252013). Errors raised while iterating a result set are no longer reported as end-of-results either:_fetchone()caught everyTypeErrorand returnedNone, so a failure anywhere in the download/parse chain was indistinguishable from an exhausted result set. Both the sync and async paths are fixed (SNOW-4109042).