You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PR was merged into the 4.4 branch.
Discussion
----------
MailerInterface: failed exception contract when enabling messenger
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | no
| License | MIT
| Doc PR | likely not required...
The interface for MailerInterface::send states that exception for
transport failures are sent as TransportExceptionInterface, which
make perfectly sense and allows to create solid UI.
If at later stage the Messenger component is enabled, the mail will
be rewired into a dispatched message, which by default is synchronous.
This cause all exception to be wrapped into HandlerFailedException
which doesn't the interface contract.
In the end the UI is broken, and the exception HandlerFailedException,
even if caught, is totally unrelated to the usage context as it is only
related to configuration details.
This patch will unwrap the underlying MailTransportInterface exception
if available for the handler exception.
PS: don't know if make sense to add a phpunit test for this cross-component scenario, if so I'll try. Also, this will restore compatibility with interface, but I don't if it's to be considered a BC (strictly speaking, it may be)
Commits
-------
4e29672 MailerInterface: failed exception contract when enabling messenger
0 commit comments