¿Qué es el error Exception printing is disabled by default en Magento 2?
El error Exception printing is disabled by default for security reasons es una de las pantallas de advertencia más comunes y frustrantes en Magento 2. Este mensaje no es un fallo en sí mismo, sino una medida de protección diseñada por Magento para evitar que usuarios externos o atacantes puedan visualizar detalles técnicos sensibles de tu servidor (como rutas de directorios, consultas SQL o versiones de PHP) cuando ocurre una excepción inesperada en el sistema.
Causas comunes de este error
Detrás de esta advertencia genérica se esconde un error de ejecución en PHP que puede ser originado por diversos factores:
- Conflictos lógicos con módulos o extensiones de terceros recientemente instaladas o actualizadas.
- Problemas de conexión o credenciales incorrectas en la base de datos MySQL o en el almacenamiento en caché de Redis.
- Falta de memoria RAM configurada en el servidor (límite de php.ini insuficiente) durante la carga de páginas complejas.
- Errores de sintaxis en plantillas del tema o incompatibilidades con la versión actual de PHP.
Método 1: Habilitar la visualización de errores (Modo Desarrollador)
Para identificar el fallo real en un entorno de pruebas, lo más rápido es habilitar la impresión directa de errores en pantalla activando el modo desarrollador. Sigue estos pasos en la terminal:
- Conéctate a tu servidor web a través de SSH.
- Dirígete a la carpeta raíz de tu instalación de Magento 2.
- Activa el modo de desarrollo ejecutando el siguiente comando:
bin/magento deploy:mode:set developer - Accede a la carpeta de configuración de errores:
cd pub/errors - Renombra el archivo de plantilla para activar la impresión de errores en tu navegador:
cp local.xml.sample local.xml - Limpia la caché de la plataforma para aplicar los cambios:
bin/magento cache:clean
Al recargar la página web en tu navegador, en lugar de la pantalla de bloqueo de seguridad, verás el rastreo completo de la excepción de PHP con la línea exacta del archivo que está causando el fallo.
Método 2: Leer el reporte de error desde var/report
Si tu tienda online está en producción, no es recomendable activar el modo desarrollador ya que expondrías datos sensibles a tus clientes. En su lugar, puedes consultar el registro técnico privado que genera Magento en el servidor utilizando el identificador numérico que aparece en pantalla (por ejemplo, Error log record number: 1284593850):
- Accede por SSH a tu servidor y posiciónate en el directorio raíz de Magento.
- Entra a la carpeta interna donde se guardan los reportes de excepciones:
cd var/report - Abre el archivo cuyo nombre coincida con el número de registro que te devolvió el error en el navegador utilizando el comando cat:
cat 1284593850 - Analiza las primeras líneas del archivo. Allí encontrarás el mensaje detallado de la excepción y la ruta del módulo o script PHP que ha fallado.
Método 3: Desactivación de módulos conflictivos y recompilación
Una vez que hayas localizado el módulo que genera la excepción mediante el reporte de error, debes desactivarlo y regenerar el código para devolver la estabilidad a tu e-commerce:
- Deshabilita el módulo problemático ejecutando:
bin/magento module:disable NombreProveedor_NombreModulo - Actualiza el esquema de la base de datos para limpiar tablas huérfanas:
bin/magento setup:upgrade - Ejecuta el compilador de dependencias de Magento:
bin/magento setup:di:compile - Despliega los archivos estáticos de tu tema en producción:
bin/magento setup:static-content:deploy -f - Limpia la caché del sistema para que todos los clientes vean la versión corregida:
bin/magento cache:flush