Guzzle 8.1.0 adds PHP 8.6 support, and it shipped on August 24, 2026 alongside 8.0.3, 7.15.5, and 7.15.4. That last one backports PHP 8.6 support to the 7.x line, so you don't have to be on 8.x to move an app to 8.6.
- PHP 8.6 support on both the 8.x and 7.x branches
- TLS session sharing for the stream handler, not just cURL
- Streamed uploads that resend mid-transfer instead of failing
- Credentials stripped from automatic exception messages
What's New
PHP 8.6 Support
Guzzle now runs on PHP 8.6. The work went into 8.1.0 and was backported to 7.15.4, which matters because a lot of projects are still pinned to the 7.x line and would otherwise block a PHP upgrade. On 7.15.4 the fix was swapping the deprecated spl_object_hash() out of the handler stack debug output.
PR: #3927
TLS Session Sharing for Streams
The stream handler can now share TLS sessions on PHP 8.6 and up, which lets repeat requests to the same host skip a full handshake. Persistent sharing across processes is still cURL-only, so this closes part of the gap between the two handlers rather than all of it.
PR: #3584
Resending Streamed Uploads
When PHP exposes CURLOPT_SEEKFUNCTION, Guzzle registers a seek callback for streamed request bodies. A redirect or an auth challenge partway through an upload used to mean the transfer failed, because the body had already been consumed. Now cURL rewinds the stream and sends it again.
PR: #3853
Credentials Out of Exception Messages
Automatically generated exception messages no longer include URI credentials, query strings, or fragments. If you've ever found a basic-auth password sitting in an exception trace in your logs, this is the fix.
PR: #3916
Structured Stream Errors
Stream handler transport failures also pick up PHP 8.6's structured stream error codes, so a DNS failure and a refused connection stop looking alike.
PR: #3594
Upgrade Notes
No breaking changes are expected for typical applications. Guzzle 8.1.0 raises its constraints to guzzlehttp/promises ^3.0.2 and guzzlehttp/psr7 ^3.1, which Composer resolves on update:
composer require guzzlehttp/guzzle:^8.1
If you're on the 7.x line and just want PHP 8.6 support, 7.15.4 is the one you want.