Skip to content

Conversation

@naxo8628
Copy link

@naxo8628 naxo8628 commented Oct 13, 2025

add subcriptionInfo (maxDeliveryAttempts,deadLetterTopic...) in new Stamp.

This allows redefine the "messenger.retry.send_failed_message_for_retry_listener" to log correctly the level & the retryCount:

public function onMessageFailed(WorkerMessageFailedEvent $event): void
    {
        $context = ['error' => $event->getThrowable()->getMessage(), 'class' => \get_class($event->getEnvelope()->getMessage()), 'exception' => $event->getThrowable()];
        if ($stamp = $event->getEnvelope()->last(GpsReceivedStamp::class)) {
            $retryCount = $stamp->getGpsMessage()->deliveryAttempt();
            $subscriptionStamp = $event->getEnvelope()->last(GpsReceiverOptionsStamp::class);
            $maxRetry = $subscriptionStamp?->getMaxDeliveryAttempts() ?? 0;
            $context += ['retryCount' => $retryCount, 'maxRetry' => $maxRetry, 'failedTopic' => $subscriptionStamp?->getDeadLetterTopic()];
            if ($retryCount < $maxRetry) {
                $this->messengerLogger?->warning('Error thrown while handling message {class}. Pub/sub retries: #{retryCount}/{maxRetry}. Error: "{error}"', $context);
            } else {
                $this->messengerLogger?->critical('Error thrown while handling message {class}. Pub/sub max retries reached: #{maxRetry}. Will send to {failedTopic}  Error: "{error}"', $context);
            }
        } else {
            $this->messengerLogger?->critical('Error thrown while handling message {class}. No retryCount in Pub/sub. Error: "{error}"', $context);
        }
    }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant