**Symfony version(s) affected**: 4.x, 5.x **Description** <!-- A clear and concise description of the problem. --> https://github.com/symfony/symfony/blob/b3df84c857f41084720f58aef91fe35e272bc3b6/src/Symfony/Component/HttpClient/HttplugClient.php#L117 `RejectedPromise` returned here is `Http\Promise\RejectedPromise`, but not the full implementation like `Symfony\Component\HttpClient\Response\HttplugPromise` (as in docblock `@return`) This can cause problem. For example, promises returned by then functions will be treated as plain value. The code: https://github.com/php-http/promise/blob/02ee67f2346b4eec3861afec741c656f5ff717ab/src/RejectedPromise.php How Guzzle promise settle promises: https://github.com/guzzle/promises/blob/bbf3b200bc83c1e9298580a9f99b9be248543467/src/RejectedPromise.php#L40 https://github.com/guzzle/promises/blob/bbf3b200bc83c1e9298580a9f99b9be248543467/src/Promise.php#L108 **How to reproduce** <!-- Code and/or config needed to reproduce the problem. If it's a complex bug, create a "bug reproducer" as explained in: https://symfony.com/doc/current/contributing/code/reproducer.html --> https://github.com/brentybh/symfony-37488 Sorry, it's not finished yet. Because I have to bring in a retry middleware. The Httplug simple promise CAN cover most simple use cases. But the retry middleware implementation is different... **Possible Solution** <!--- Optional: only if you have suggestions on a fix/reason for the bug --> emm.. Maybe it's not strictly an issue of Symfony but a problem of Httplug.... **Additional context** <!-- Optional: any other context about the problem: log messages, screenshots, etc. -->