I’ve not installed any new plugins or made any version updates recently.
But today I tried to open the Sales > Orders page on my Magento 2.4.5 instance backend admin, it shows an error:
[2025-02-26T04:04:59.571219+00:00] main.ERROR: Unable to unserialize value. Error: Syntax error [] []
[2025-02-26T04:04:59.574194+00:00] main.CRITICAL: InvalidArgumentException: Unable to unserialize value. Error: Syntax error in /home/devhobis/public_html/vendor/magento/framework/Serialize/Serializer/Json.php:45
Stack trace:
#0 /home/devhobis/public_html/vendor/magento/module-ui/Config/Data.php(105): MagentoFrameworkSerializeSerializerJson->unserialize('{"arguments":{"...')
#1 /home/devhobis/public_html/vendor/magento/module-ui/Config/Data.php(136): MagentoUiConfigData->initData()
#2 /home/devhobis/public_html/vendor/magento/framework/View/Layout/Reader/UiComponent.php(100): MagentoUiConfigData->get('sales_order_gri...')
#3 /home/devhobis/public_html/vendor/magento/framework/View/Layout/ReaderPool.php(105): MagentoFrameworkViewLayoutReaderUiComponent->interpret(Object(MagentoFrameworkViewLayoutReaderContext), Object(MagentoFrameworkViewLayoutElement), Object(MagentoFrameworkViewLayoutElement))
#4 /home/devhobis/public_html/vendor/magento/framework/View/Layout/Reader/Container.php(84): MagentoFrameworkViewLayoutReaderPool->interpret(Object(MagentoFrameworkViewLayoutReaderContext), Object(MagentoFrameworkViewLayoutElement))
I went into /vendor/magento/framework/Serialize/Serializer/Json.php and added some debugging lines to show the offending string:
/**
* @inheritDoc
* @since 101.0.0
*/
public function unserialize($string)
{
if ($string === null) {
throw new InvalidArgumentException(
'Unable to unserialize value. Error: Parameter must be a string type, null given.'
);
}
$result = json_decode($string, true);
if (json_last_error() !== JSON_ERROR_NONE) {
var_dump($string);
die;
throw new InvalidArgumentException("Unable to unserialize value. Error: " . json_last_error_msg());
}
return $result;
}
The following String was dumped into the page on refresh:
string(8078) "{"arguments":{"data":{"name":"data","xsi:type":"array","item":{"config":{"name":"config","xsi:type":"array","item":{"component":{"name":"component","xsi:type":"string","value":"uiComponent"}}},"template":{"name":"template","xsi:type":"string","value":"templates/listing/default"},"save_parameters_in_session":{"name":"save_parameters_in_session","xsi:type":"string","value":"1"},"client_root":{"name":"client_root","xsi:type":"string","value":"mui/index/render"},"buttons":{"name":"buttons","xsi:type":"array","item":{"add":{"name":"add","xsi:type":"array","item":{"url":{"name":"url","xsi:type":"url","path":"sales/order_create/start"},"class":{"value":"primary","name":"class","xsi:type":"string"},"label":{"value":"Create New Order","name":"label","xsi:type":"string","translate":"true"},"aclResource":{"value":"Magento_Sales::create","name":"aclResource","xsi:type":"string"},"name":{"name":"name","value":"add","xsi:type":"string"}}}}},"spinner":{"name":"spinner","xsi:type":"string","value":"sales_order_columns"},"js_config":{"name":"js_config","xsi:type":"array","item":{"deps":{"name":"deps","xsi:type":"array","item":[{"name":0,"xsi:type":"string","value":"sales_order_grid.sales_order_grid_data_source"}]},"provider":{"name":"provider","xsi:type":"string","value":"sales_order_grid.sales_order_grid_data_source"}}}}}},"attributes":{"sorting":"true","class":"Magento\Ui\Component\Listing","component":"uiComponent"},"children":{"sales_order_grid_data_source":{"attributes":{"class":"Magento\Ui\Component\DataSource","name":"sales_order_grid_data_source","component":"Magento_Ui/js/grid/provider"},"children":[],"arguments":{"dataProvider":{"name":"dataProvider","xsi:type":"configurableObject","argument":{"data":{"name":"data","xsi:type":"array","item":{"config":{"name":"config","xsi:type":"array","item":{"update_url":{"name":"update_url","xsi:type":"url","path":"mui/index/render"},"component":{"name":"component","xsi:type":"string","value":"Magento_Ui/js/grid/provider"},"aclResource":{"name":"aclResource","xsi:type":"string","value":"Magento_Sales::sales_order"}}}}},"class":{"name":"class","xsi:type":"string","value":"Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider"},"name":{"name":"name","xsi:type":"string","value":"sales_order_grid_data_source"},"primaryFieldName":{"name":"primaryFieldName","xsi:type":"string","value":"main_table.entity_id"},"requestFieldName":{"name":"requestFieldName","xsi:type":"string","value":"id"}}}}},"listing_top":{"arguments":{"data":{"name":"data","xsi:type":"array","item":{"config":{"name":"config","xsi:type":"array","item":{"component":{"name":"component","xsi:type":"string","value":"Magento_Ui/js/grid/toolbar"},"sticky":{"name":"sticky","xsi:type":"boolean","value":"true"}}}}}},"attributes":{"class":"Magento\Ui\Component\Container","component":"Magento_Ui/js/grid/toolbar","name":"listing_top"},"children":{"bookmarks":{"arguments":{"data":{"name":"data","xsi:type":"array","item":{"config":{"name":"config","xsi:type":"array","item":{"component":{"name":"component","xsi:type":"string","value":"Magento_Ui/js/grid/controls/bookmarks/bookmarks"},"displayArea":{"name":"displayArea","xsi:type":"string","value":"dataGridActions"},"storageConfig":{"name":"storageConfig","xsi:type":"array","item":{"namespace":{"name":"namespace","xsi:type":"string","value":"${ $.ns }"},"saveUrl":{"name":"saveUrl","xsi:type":"url","path":"mui/bookmark/save"},"deleteUrl":{"name":"deleteUrl","xsi:type":"url","path":"mui/bookmark/delete"}}}}}}}},"attributes":{"class":"Magento\Ui\Component\Bookmark","component":"Magento_Ui/js/grid/controls/bookmarks/bookmarks","displayArea":"dataGridActions","name":"bookmarks"},"children":[]},"columns_controls":{"arguments":{"data":{"name":"data","xsi:type":"array","item":{"config":{"name":"config","xsi:type":"array","item":{"component":{"name":"component","xsi:type":"string","value":"Magento_Ui/js/grid/controls/columns"}}}}}},"attributes":{"class":"Magento\Ui\Component\Container","component":"Magento_Ui/js/grid/controls/columns","name":"columns_controls"},"children":[]},"export_button":{"arguments":{"data":{"name":"data","xsi:type":"array","item":{"config":{"name":"config","xsi:type":"array","item":{"options":{"name":"options","xsi:type":"array","item":{"csv":{"name":"csv","xsi:type":"array","item":{"value":{"name":"value","xsi:type":"string","value":"csv"},"label":{"name":"label","xsi:type":"string","translate":"true","value":"CSV"},"url":{"name":"url","xsi:type":"string","value":"mui/export/gridToCsv"}}},"xml":{"name":"xml","xsi:type":"array","item":{"value":{"name":"value","xsi:type":"string","value":"xml"},"label":{"name":"label","xsi:type":"string","translate":"true","value":"Excel XML"},"url":{"name":"url","xsi:type":"string","value":"mui/export/gridToXml"}}}}},"component":{"name":"component","xsi:type":"string","value":"Magento_Ui/js/grid/export"},"displayArea":{"name":"displayArea","xsi:type":"string","value":"dataGridActions"}}}}}},"attributes":{"class":"Magento\Ui\Component\ExportButton","component":"Magento_Ui/js/grid/export","displayArea":"dataGridActions","name":"export_button"},"children":[]},"fulltext":{"arguments":{"data":{"name":"data","xsi:type":"array","item":{"config":{"name":"config","xsi:type":"array","item":{"component":{"name":"component","xsi:type":"string","value":"Magento_Ui/js/grid/search/search"},"displayArea":{"name":"displayArea","xsi:type":"string","value":"dataGridFilters"},"storageConfig":{"name":"storageConfig","xsi:type":"array","item":{"namespace":{"name":"namespace","xsi:type":"string","value":"current.search"},"provider":{"name":"provider","xsi:type":"string","value":"ns = ${ $.ns }, index = bookmarks"}}}}}}}},"attributes":{"class":"Magento\Ui\Component\Filters\Type\Search","component":"Magento_Ui/js/grid/search/search","displayArea":"dataGridFilters","name":"fulltext"},"children":[]},"listing_filters":{"arguments":{"data":{"name":"data","xsi:type":"array","item":{"config":{"name":"config","xsi:type":"array","item":{"component":{"name":"component","xsi:type":"string","value":"Magento_Ui/js/grid/filters/filters"},"displayArea":{"name":"displayArea","xsi:type":"string","value":"dataGridFilters"},"storageConfig":{"name":"storageConfig","xsi:type":"array","item":{"namespace":{"name":"namespace","xsi:type":"string","value":"current.filters"},"provider":{"name":"provider","xsi:type":"string","value":"ns = ${ $.ns }, index = bookmarks"}}},"dataScope":{"name":"dataScope","xsi:type":"string","value":"filters"}}},"observers":{"name":"observers","xsi:type":"array","item":{"column":{"name":"column","xsi:type":"string","value":"column"}}}}}},"attributes":{"class":"Magento\Ui\Component\Filters","component":"Magento_Ui/js/grid/filters/filters","displayArea":"dataGridFilters","name":"listing_filters"},"children":{"store_id":{"arguments":{"data":{"name":"data","xsi:type":"array","item":{"config":{"name":"config","xsi:type":"array","item":{"template":{"name":"template","xsi:type":"string","value":"ui/grid/filters/field"},"caption":{"name":"caption","translate":"true","xsi:type":"string","value":"All Store Views"},"label":{"name":"label","translate":"true","xsi:type":"string","value":"Purchase Point"},"provider":{"name":"provider","xsi:type":"string","value":"${ $.parentName }"},"imports":{"name":"imports","xsi:type":"array","item":{"visible":{"name":"visible","xsi:type":"string","value":"ns = ${ $.ns }, index = ${ $.index }:visible"}}},"dataScope":{"name":"dataScope","xsi:type":"string","value":"store_id"}}}}},"optionsProvider":{"name":"optionsProvider","xsi:type":"configurableObject","argument":{"class":{"name":"class","xsi:type":"string","value":"Magento\Store\Ui\Component\Listing\Column\Store\Options"}}}},"attributes":{"class":"Magento\Ui\Component\Filters\Type\Select","template":"ui/grid/filters/field","name":"store_id","provider":"${ $.parentName }"},"children":[]}}},"listing_massaction":{"arguments":{"data":{"name":"data","xsi:type":"array","item""
It seems like Magento tried to deserialize the string above, but that won’t work because the string’s JSON object is cut off / corrupted at the end:
"listing_massaction":{"arguments":{"data":{"name":"data","xsi:type":"array","item"
How do I troubleshoot this further ? I do not know how this JSON is generated, and why it was generated in a broken manner.
Some other notes:
- I am not using Redis cache. I am using Litespeed cache
- I have never had this issue occur before until today, there were no recent plugin or version updates
- I have tried reindexing and flushing all caches.
- Other menu items like Sales > Invoices , Sales > Invoices , Sales > Transactions etc are all working fine. Only Sales > Orders is affected.