-
Notifications
You must be signed in to change notification settings - Fork 9.4k
Description
Preconditions and environment
Magento version: 2.4.7-p8 (specifically patched state after applying p8 update)
PHP version: 8.3
Database: MySql 8.0.40
Cache/Session backend: Redis (separate system and session DBs)
Number of store views/locales: (e.g., 2 — de_DE and en_GB)
Deployment type: (Docker container, multi-web-node, full static content deploy)
Recent actions: Upgrade from 2.4.7-p7 to 2.4.7-p8, full static content deploy, then cache flush and Redis flush.
Steps to reproduce
Upgrade Magento from 2.4.7-p7 to 2.4.7-p8 (apply patch, static content deploy for all locales/themes).
Ensure Redis cache and session backends are used; flush caches and sessions.
Clear pub/static/, var/view_preprocessed/. Deploy static content for all active locales/themes.
Access storefront checkout page (e.g., /de/checkout/ or /en/checkout/).
Observe checkout page fails to render (500 error) and an exception is logged with message:
Unable to unserialize value. Error: Syntax error
#1 Magento\Csp\Model\SubresourceIntegrityRepository->getData() called at …
Then flush all caches (or Redis cache DB) and re-open checkout — page works again.
Wait some time/daily usage or perform certain cache/asset operations → page fails again with the same error.
Expected result
The checkout page should load normally and allow customers to proceed with orders regardless of cache flushes or SRI map regeneration.
The patch version should not introduce regression in CSP/SRI handling or cause checkout downtime.
Actual result
Checkout page fails to display and returns a 500 error tied to Magento\Csp\Model\SubresourceIntegrityRepository.
Exception log shows “Unable to unserialize value. Error: Syntax error”.
Clearing caches and redeploying static contents temporarily resolves the problem, but the failure recurs later (after new cache entries or store usage).
Business impact: No orders processed while checkout is broken.
Additional information
Observation: Works on staging (fresh install) but production fails after a few days.
Workaround: Rolling back to 2.4.7-p7 restores functionality permanently (so far).
{"0":"Unable to unserialize value. Error: Syntax error","1":"#1 Magento\\Csp\\Model\\SubresourceIntegrityRepository->getData() called at [vendor\/magento\/module-csp\/Model\/SubresourceIntegrityRepository.php:86]\n#2 Magento\\Csp\\Model\\SubresourceIntegrityRepository->getByPath() called at [vendor\/magento\/module-csp\/Plugin\/AddDefaultPropertiesToGroupPlugin.php:91]\n#3 Magento\\Csp\\Plugin\\AddDefaultPropertiesToGroupPlugin->beforeGetFilteredProperties() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:121]\n#4 Magento\\Framework\\View\\Asset\\GroupedCollection\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153]\n#5 Magento\\Framework\\View\\Asset\\GroupedCollection\\Interceptor->___callPlugins() called at [generated\/code\/Magento\/Framework\/View\/Asset\/GroupedCollection\/Interceptor.php:23]\n#6 Magento\\Framework\\View\\Asset\\GroupedCollection\\Interceptor->getFilteredProperties() called at [vendor\/magento\/framework\/View\/Asset\/GroupedCollection.php:60]\n#7 Magento\\Framework\\View\\Asset\\GroupedCollection->add() called at [vendor\/magento\/framework\/View\/Page\/Config.php:498]\n#8 Magento\\Framework\\View\\Page\\Config->addPageAsset() called at [vendor\/magento\/framework\/View\/Page\/Config\/Generator\/Head.php:132]\n#9 Magento\\Framework\\View\\Page\\Config\\Generator\\Head->processAssets() called at [vendor\/magento\/framework\/View\/Page\/Config\/Generator\/Head.php:104]\n#10 Magento\\Framework\\View\\Page\\Config\\Generator\\Head->process() called at [vendor\/magento\/framework\/View\/Layout\/GeneratorPool.php:93]\n#11 Magento\\Framework\\View\\Layout\\GeneratorPool->process() called at [vendor\/magento\/framework\/View\/Layout.php:365]\n#12 Magento\\Framework\\View\\Layout->generateElements() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:58]\n#13 Magento\\Framework\\View\\Layout\\Interceptor->___callParent() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:138]\n#14 Magento\\Framework\\View\\Layout\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153]\n#15 Magento\\Framework\\View\\Layout\\Interceptor->___callPlugins() called at [generated\/code\/Magento\/Framework\/View\/Layout\/Interceptor.php:32]\n#16 Magento\\Framework\\View\\Layout\\Interceptor->generateElements() called at [vendor\/magento\/framework\/View\/Layout\/Builder.php:129]\n#17 Magento\\Framework\\View\\Layout\\Builder->generateLayoutBlocks() called at [vendor\/magento\/framework\/View\/Page\/Builder.php:65]\n#18 Magento\\Framework\\View\\Page\\Builder->generateLayoutBlocks() called at [vendor\/magento\/framework\/View\/Layout\/Builder.php:65]\n#19 Magento\\Framework\\View\\Layout\\Builder->build() called at [vendor\/magento\/framework\/View\/Page\/Config.php:227]\n#20 Magento\\Framework\\View\\Page\\Config->build() called at [vendor\/magento\/framework\/View\/Page\/Config.php:250]\n#21 Magento\\Framework\\View\\Page\\Config->getTitle() called at [vendor\/magento\/module-checkout\/Controller\/Index\/Index.php:48]\n#22 Magento\\Checkout\\Controller\\Index\\Index->execute() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:58]\n#23 Magento\\Checkout\\Controller\\Index\\Index\\Interceptor->___callParent() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:138]\n#24 Magento\\Checkout\\Controller\\Index\\Index\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153]\n#25 Magento\\Checkout\\Controller\\Index\\Index\\Interceptor->___callPlugins() called at [generated\/code\/Magento\/Checkout\/Controller\/Index\/Index\/Interceptor.php:23]\n#26 Magento\\Checkout\\Controller\\Index\\Index\\Interceptor->execute() called at [vendor\/magento\/framework\/App\/Action\/Action.php:111]\n#27 Magento\\Framework\\App\\Action\\Action->dispatch() called at [vendor\/magento\/module-checkout\/Controller\/Onepage.php:161]\n#28 Magento\\Checkout\\Controller\\Onepage->dispatch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:58]\n#29 Magento\\Checkout\\Controller\\Index\\Index\\Interceptor->___callParent() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:138]\n#30 Magento\\Checkout\\Controller\\Index\\Index\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153]\n#31 Magento\\Checkout\\Controller\\Index\\Index\\Interceptor->___callPlugins() called at [generated\/code\/Magento\/Checkout\/Controller\/Index\/Index\/Interceptor.php:32]\n#32 Magento\\Checkout\\Controller\\Index\\Index\\Interceptor->dispatch() called at [vendor\/magento\/framework\/App\/FrontController.php:245]\n#33 Magento\\Framework\\App\\FrontController->getActionResponse() called at [vendor\/magento\/framework\/App\/FrontController.php:212]\n#34 Magento\\Framework\\App\\FrontController->processRequest() called at [vendor\/magento\/framework\/App\/FrontController.php:146]\n#35 Magento\\Framework\\App\\FrontController->dispatch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:58]\n#36 Magento\\Framework\\App\\FrontController\\Interceptor->___callParent() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:138]\n#37 Magento\\Framework\\App\\FrontController\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/module-store\/App\/FrontController\/Plugin\/RequestPreprocessor.php:99]\n#38 Magento\\Store\\App\\FrontController\\Plugin\\RequestPreprocessor->aroundDispatch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:135]\n#39 Magento\\Framework\\App\\FrontController\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/module-page-cache\/Model\/App\/FrontController\/BuiltinPlugin.php:72]\n#40 Magento\\PageCache\\Model\\App\\FrontController\\BuiltinPlugin->aroundDispatch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:135]\n#41 Magento\\Framework\\App\\FrontController\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153]\n#42 Magento\\Framework\\App\\FrontController\\Interceptor->___callPlugins() called at [generated\/code\/Magento\/Framework\/App\/FrontController\/Interceptor.php:23]\n#43 Magento\\Framework\\App\\FrontController\\Interceptor->dispatch() called at [vendor\/magento\/framework\/App\/Http.php:116]\n#44 Magento\\Framework\\App\\Http->launch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:58]\n#45 Magento\\Framework\\App\\Http\\Interceptor->___callParent() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:138]\n#46 Magento\\Framework\\App\\Http\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/module-application-performance-monitor\/Plugin\/ApplicationPerformanceMonitor.php:38]\n#47 Magento\\ApplicationPerformanceMonitor\\Plugin\\ApplicationPerformanceMonitor->aroundLaunch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:135]\n#48 Magento\\Framework\\App\\Http\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153]\n#49 Magento\\Framework\\App\\Http\\Interceptor->___callPlugins() called at [generated\/code\/Magento\/Framework\/App\/Http\/Interceptor.php:23]\n#50 Magento\\Framework\\App\\Http\\Interceptor->launch() called at [vendor\/magento\/framework\/App\/Bootstrap.php:264]\n#51 Magento\\Framework\\App\\Bootstrap->run() called at [pub\/index.php:30]\n","url":"\/de\/checkout\/","script_name":"\/index.php","report_id":"f95933a6e414dd4a23708b20512e138b9e0cbfab6ba31262b7d86435ff2ac66f"}
Release note
No response
Triage and priority
- Severity: S0 - Affects critical data or functionality and leaves users without workaround.
- Severity: S1 - Affects critical data or functionality and forces users to employ a workaround.
- Severity: S2 - Affects non-critical data or functionality and forces users to employ a workaround.
- Severity: S3 - Affects non-critical data or functionality and does not force users to employ a workaround.
- Severity: S4 - Affects aesthetics, professional look and feel, “quality” or “usability”.