Unable to serialize value. at /public_html/vendor/magento/framework/Serialize/Serializer/Json.php:26)”} []


main.CRITICAL: Unable to serialize value. {“exception”:”[object] (InvalidArgumentException(code: 0): Unable to serialize value. at /public_html/vendor/magento/framework/Serialize/Serializer/Json.php:26)”} []

magento version: 2.2.6

current Json.php

<?php /**  * Copyright © Magento, Inc. All rights reserved.  * See COPYING.txt for license details.  */ namespace Magento\Framework\Serialize\Serializer;  use Magento\Framework\Serialize\SerializerInterface;  /**  * Serialize data to JSON, unserialize JSON encoded data  *  * @api  * @since 100.2.0  */ class Json implements SerializerInterface {     /**      * {@inheritDoc}      * @since 100.2.0      */     public function serialize($  data)     {         $  result = json_encode($  data);         if (false === $  result) {             throw new \InvalidArgumentException('Unable to serialize value.');         }         return $  result;     }       /**      * {@inheritDoc}      * @since 100.2.0      */     public function unserialize($  string)     {         $  result = json_decode($  string, true);         if (json_last_error() !== JSON_ERROR_NONE) {             throw new \InvalidArgumentException('Unable to unserialize value.');         }         return $  result;     }  } 

previous Json.php with fixes, i remember it created some issues on the site so i reverted back.

<?php /**  * Copyright © Magento, Inc. All rights reserved.  * See COPYING.txt for license details.  */ namespace Magento\Framework\Serialize\Serializer;  use Magento\Framework\Serialize\SerializerInterface;  /**  * Serialize data to JSON, unserialize JSON encoded data  *  * @api  * @since 100.2.0  */ class Json implements SerializerInterface {     /**      * {@inheritDoc}      * @since 100.2.0      */     public function serialize($  data)     {         $  result = json_encode($  data);         if (false === $  result) {             throw new \InvalidArgumentException('Unable to serialize value.');         }         return $  result;     }       /**      * {@inheritDoc}      * @since 100.2.0      */     public function unserialize($  string)     {         /* old function         $  result = json_decode($  string, true);         if (json_last_error() !== JSON_ERROR_NONE) {             throw new \InvalidArgumentException('Unable to unserialize value.');         }         return $  result;         */         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;     } } 

similar issues:

Unable to Serialize Value Magento 2.2.6

Magento 2.2: Unable to unserialize value?