@@ -62,8 +62,7 @@ protected function displaySingleMessage(Envelope $envelope, SymfonyStyle $io)
62
62
63
63
/** @var SentToFailureTransportStamp|null $sentToFailureTransportStamp */
64
64
$ sentToFailureTransportStamp = $ envelope ->last (SentToFailureTransportStamp::class);
65
- /** @var RedeliveryStamp|null $lastRedeliveryStamp */
66
- $ lastRedeliveryStamp = $ envelope ->last (RedeliveryStamp::class);
65
+ $ lastRedeliveryStampWithException = $ this ->getLastRedeliveryStampWithException ($ envelope );
67
66
68
67
$ rows = [
69
68
['Class ' , \get_class ($ envelope ->getMessage ())],
@@ -73,13 +72,13 @@ protected function displaySingleMessage(Envelope $envelope, SymfonyStyle $io)
73
72
$ rows [] = ['Message Id ' , $ id ];
74
73
}
75
74
76
- $ flattenException = null === $ lastRedeliveryStamp ? null : $ lastRedeliveryStamp ->getFlattenException ();
75
+ $ flattenException = null === $ lastRedeliveryStampWithException ? null : $ lastRedeliveryStampWithException ->getFlattenException ();
77
76
if (null === $ sentToFailureTransportStamp ) {
78
77
$ io ->warning ('Message does not appear to have been sent to this transport after failing ' );
79
78
} else {
80
79
$ rows = array_merge ($ rows , [
81
- ['Failed at ' , null === $ lastRedeliveryStamp ? '' : $ lastRedeliveryStamp ->getRedeliveredAt ()->format ('Y-m-d H:i:s ' )],
82
- ['Error ' , null === $ lastRedeliveryStamp ? '' : $ lastRedeliveryStamp ->getExceptionMessage ()],
80
+ ['Failed at ' , null === $ lastRedeliveryStampWithException ? '' : $ lastRedeliveryStampWithException ->getRedeliveredAt ()->format ('Y-m-d H:i:s ' )],
81
+ ['Error ' , null === $ lastRedeliveryStampWithException ? '' : $ lastRedeliveryStampWithException ->getExceptionMessage ()],
83
82
['Error Class ' , null === $ flattenException ? '(unknown) ' : $ flattenException ->getClass ()],
84
83
['Transport ' , $ sentToFailureTransportStamp ->getOriginalReceiverName ()],
85
84
]);
@@ -121,4 +120,16 @@ protected function getReceiver(): ReceiverInterface
121
120
{
122
121
return $ this ->receiver ;
123
122
}
123
+
124
+ protected function getLastRedeliveryStampWithException (Envelope $ envelope ): ?RedeliveryStamp
125
+ {
126
+ /** @var RedeliveryStamp $stamp */
127
+ foreach (array_reverse ($ envelope ->all (RedeliveryStamp::class)) as $ stamp ) {
128
+ if (null !== $ stamp ->getExceptionMessage ()) {
129
+ return $ stamp ;
130
+ }
131
+ }
132
+
133
+ return null ;
134
+ }
124
135
}
0 commit comments