查看对应的错误日志为:
[2023-03-27T09:38:18.436188+00:00] main.CRITICAL: InvalidArgumentException: Unable to unserialize value. Error: Syntax error in /data/wwwroot/vendor/magento/framework/Serialize/Serializer/Json.php:45
这时需要修改文件
/data/wwwroot/vendor/magento/framework/Serialize/Serializer/Json.php
public function unserialize($string) { /* 在原位置添加以下代码 */ if($this->is_serialized($string)){ $string = $this->serialize($string); } /*--------------代码新增结束-------------------*/ $result = json_decode($string, true); if (json_last_error() !== JSON_ERROR_NONE) { throw new \InvalidArgumentException('Unable to unserialize value.'); } return $result; } //添加以下代码 function is_serialized($value, &$result = null) { // Bit of a give away this one if (!is_string($value)) { return false; } // Serialized false, return true. unserialize() returns false on an // invalid string or it could return false if the string is serialized // false, eliminate that possibility. if ($value === 'b:0;') { $result = false; return true; } $length = strlen($value); $end = ''; switch ($value[0]) { case 's': if ($value[$length - 2] !== '"') { return false; } case 'b': case 'i': case 'd': // This looks odd but it is quicker than isset()ing $end .= ';'; case 'a': case 'O': $end .= '}'; if ($value[1] !== ':') { return false; } switch ($value[2]) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: break; default: return false; } case 'N': $end .= ';'; if ($value[$length - 1] !== $end[0]) { return false; } break; default: return false; } if (($result = @unserialize($value)) === false) { $result = null; return false; } return true; }