Description
Symfony version(s) affected: 5.2.1
Description
Caught Could not decode stamp: The type of the "exceptionCode" attribute for class "Symfony\Component\Messenger\Stamp\ErrorDetailsStamp" must be one of "int" ("string" given).
in the logs of one of my projects.
How to reproduce
Not really sure how to do that, nor when or why it happened, just took it out of the logs. I have a full stack trace though
Possible Solution
Allow ErrorDetailsStamp::$exceptionCode
to be int|string
instead of int|mixed
. This seems to me like a serializer issue, reading @var int|mixed
at AbstractObjectNormalizer::validateAndDenormalize()
I can look further into that / provide a PR after the upcoming week. If anybody is adventurous enough, I hope the stack trace is helpful enough.
Additional context
MESSAGE: "Could not decode stamp: The type of the "exceptionCode" attribute for class "Symfony\Component\Messenger\Stamp\ErrorDetailsStamp" must be one of "int" ("string" given)."
STACK TRACE
at (vendor/symfony/messenger/Transport/Serialization/Serializer.php at line 122)
at Symfony\Component\Messenger\Transport\Serialization\Serializer->decodeStamps ()
(vendor/symfony/messenger/Transport/Serialization/Serializer.php at line 73)
at Symfony\Component\Messenger\Transport\Serialization\Serializer->decode ()
(vendor/symfony/amqp-messenger/Transport/AmqpReceiver.php at line 66)
at Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpReceiver->getEnvelope ()
(vendor/symfony/amqp-messenger/Transport/AmqpReceiver.php at line 45)
at Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpReceiver->get ()
(vendor/symfony/messenger/Worker.php at line 74)
at Symfony\Component\Messenger\Worker->run ()
(vendor/symfony/messenger/Command/ConsumeMessagesCommand.php at line 198)
at Symfony\Component\Messenger\Command\ConsumeMessagesCommand->execute ()
(vendor/symfony/console/Command/Command.php at line 255)
at Symfony\Component\Console\Command\Command->run ()
(vendor/symfony/console/Application.php at line 989)
at Symfony\Component\Console\Application->doRunCommand ()
(vendor/symfony/framework-bundle/Console/Application.php at line 96)
at Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand ()
(vendor/symfony/console/Application.php at line 290)
at Symfony\Component\Console\Application->doRun ()
(vendor/symfony/framework-bundle/Console/Application.php at line 82)
at Symfony\Bundle\FrameworkBundle\Console\Application->doRun ()
(vendor/symfony/console/Application.php at line 166)
at Symfony\Component\Console\Application->run ()
(bin/console at line 43)
PREVIOUS "The type of the "exceptionCode" attribute for class "Symfony\Component\Messenger\Stamp\ErrorDetailsStamp" must be one of "int" ("string" given)."
at (vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php at line 494)
at Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer->validateAndDenormalize ()
(vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php at line 506)
at Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer->denormalizeParameter ()
(vendor/symfony/serializer/Normalizer/AbstractNormalizer.php at line 385)
at Symfony\Component\Serializer\Normalizer\AbstractNormalizer->instantiateObject ()
(vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php at line 233)
at Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer->instantiateObject ()
(vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php at line 311)
at Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer->denormalize ()
(vendor/symfony/serializer/Serializer.php at line 208)
at Symfony\Component\Serializer\Serializer->denormalize ()
(vendor/symfony/serializer/Normalizer/ArrayDenormalizer.php at line 62)
at Symfony\Component\Serializer\Normalizer\ArrayDenormalizer->denormalize ()
(vendor/symfony/serializer/Serializer.php at line 208)
at Symfony\Component\Serializer\Serializer->denormalize ()
(vendor/symfony/serializer/Serializer.php at line 144)
at Symfony\Component\Serializer\Serializer->deserialize ()
(vendor/symfony/messenger/Transport/Serialization/Serializer.php at line 120)
at Symfony\Component\Messenger\Transport\Serialization\Serializer->decodeStamps ()
(vendor/symfony/messenger/Transport/Serialization/Serializer.php at line 73)
at Symfony\Component\Messenger\Transport\Serialization\Serializer->decode ()
(vendor/symfony/amqp-messenger/Transport/AmqpReceiver.php at line 66)
at Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpReceiver->getEnvelope ()
(vendor/symfony/amqp-messenger/Transport/AmqpReceiver.php at line 45)
at Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpReceiver->get ()
(vendor/symfony/messenger/Worker.php at line 74)
at Symfony\Component\Messenger\Worker->run ()
(vendor/symfony/messenger/Command/ConsumeMessagesCommand.php at line 198)
at Symfony\Component\Messenger\Command\ConsumeMessagesCommand->execute ()
(vendor/symfony/console/Command/Command.php at line 255)
at Symfony\Component\Console\Command\Command->run ()
(vendor/symfony/console/Application.php at line 989)
at Symfony\Component\Console\Application->doRunCommand ()
(vendor/symfony/framework-bundle/Console/Application.php at line 96)
at Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand ()
(vendor/symfony/console/Application.php at line 290)
at Symfony\Component\Console\Application->doRun ()
(vendor/symfony/framework-bundle/Console/Application.php at line 82)
at Symfony\Bundle\FrameworkBundle\Console\Application->doRun ()
(vendor/symfony/console/Application.php at line 166)
at Symfony\Component\Console\Application->run ()
(bin/console at line 43)