Saltar al contenido principal

Troubleshooting

M2 cuenta con herramientas que permiten investigar los errores que suceden en el sitio

Log

Por default existen logs donde se pueden registrar acciones o información adicional que permite entender lo que está pasando dentro de m2, estos logs se encuentran en la carpeta var/log, dentro aparecen varios archivos donde cada archivo hace referencia a un tipo específico de log

Issues conocidos

Sin espacio en el server por sesiones

[2025-07-30 03:30:07] main.CRITICAL: Warning: SessionHandler::read(): open(/app/var/session//sess_d43e8614d19903a2b1dd52921a531f2e, O_RDWR) failed: No space left on device (28) in /app/vendor/magento/framework/Session/SaveHandler/Native.php on line 22 {"report_id":"9cb3d87498eccc416c885457080793d6945b0c946b32691777608ddd66ec25d2","exception":"[object] (Exception(code: 0): Warning: SessionHandler::read(): open(/app/var/session//sess_d43e8614d19903a2b1dd52921a531f2e, O_RDWR) failed: No space left on device (28) in /app/vendor/magento/framework/Session/SaveHandler/Native.php on line 22 at /app/vendor/magento/framework/App/ErrorHandler.php:61)"} []

¿Por qué sucede?

A nivel sesiones, estas se almacenan en la carpeta var/sessions como archivos de sesión, cada usuario que interactua con el carrito de compras crea una sesión para poder asociar el carrito con el user que lo creó, esto provoca que se vayan creando archivos dentro de dicha carpeta, conforme pasa el tiempo estos archivos pueden llegar a provocar errores de performance al ser demasiado los que se tienen de tal forma que no se pueden crear más

Recomendación

  • Se puede aplicar rotación para borrar las sesiones más viejas, es decir, las que tengan más de 6 meses, para esto se puede hacer de forma manual o con log rotation
  • Instalar redis, redis es un sistema de almacenamiento de datos en memoria que permite optimizar y escalar estos problemas de sesión, m2 tiene soporte nativo para redis

Return value of Gaia\Gabo\Model\ZipCodeAvailable::getZipCodes() must be of the type array, null returned

[2025-03-14 10:12:22] main.ERROR: Return value of Gaia\Gabo\Model\ZipCodeAvailable::getZipCodes() must be of the type array, null returned {"exception":"[object] (GraphQL\\Error\\Error(code: 0): Return value of Gaia\\Gabo\\Model\\ZipCodeAvailable::getZipCodes() must be of the type array, null returned at /app/vendor/webonyx/graphql-php/src/Error/Error.php:174, TypeError(code: 0): Return value of Gaia\\Gabo\\Model\\ZipCodeAvailable::getZipCodes() must be of the type array, null returned at /app/app/code/Gaia/Gabo/Model/ZipCodeAvailable.php:77)"} []

¿Por qué sucede?

Cada que se agrega un producto se valida la disponibilidad de entrega del mismo en GABO, para esto se consultan los CPs donde se puede hacer la entrega, internamente en m2 se tiene un registro para almacenar de forma temporal los CPs y evitar sobrecargar a GABO con consultas innecesarias, al parecer durante el reinicio de Gabo este registro almacenó información incorrecta (null) y eso es lo que estaba devolviendo a headless, esto provoca que m2 regrese un internal server error que deshabilita la feature de add to cart

Recomendación

Se deshabilita temporalmente la cache via código en m2

Eventualmente hay que quitar este "&& false" para permitir usar de nuevo la cache y no sobrecargar GABO