Skip to content

Checkout page failure due to “Unable to unserialize value” in CSP/SRI after update to Magento 2.4.7-p8 #40247

@gaiterjones

Description

@gaiterjones

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”.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions