¿Qué es el Error 'Invalid Form Key' en Magento 2?
El error Invalid Form Key es uno de los problemas más frecuentes a los que se enfrentan los administradores de tiendas online en Magento 2. La clave de formulario (form key) es una medida de seguridad crítica implementada en Magento para prevenir ataques de falsificación de peticiones en sitios cruzados (CSRF). Cuando esta clave caduca, no coincide o la configuración del servidor no la procesa correctamente, Magento bloquea la acción —como guardar un producto o cambiar configuraciones— y muestra este error.
Causas Principales del Error
Existen diversos motivos por los cuales Magento 2 puede arrojar este fallo:
- Incoherencia entre la URL base configurada y la URL desde la que navega el administrador (problemas con
wwwo dominios HTTP/HTTPS). - Límites de variables en PHP excedidos (como
max_input_vars). - Problemas con la caché y sesiones almacenadas en Redis o en el sistema de ficheros.
- Extensiones de terceros de administración que generan conflictos con las cookies.
Método 1: Ajustar las URLs Base en la Base de Datos
Si no puedes acceder al panel de administración debido a este error, la mejor opción es corregir las URLs directamente desde la base de datos usando SQL o phpMyAdmin.
- Accede a tu base de datos a través de phpMyAdmin o tu cliente SQL preferido.
- Busca la tabla
core_config_data. - Localiza los registros con los path
web/unsecure/base_urlyweb/secure/base_url. - Asegúrate de que la URL coincida exactamente con la que estás utilizando en tu navegador (incluyendo la barra final
/y si usas o nowww). - Ejecuta una consulta SQL si es necesario para actualizarlas de forma masiva, por ejemplo:
UPDATE core_config_data SET value = 'https://tu-tienda.com/' WHERE path LIKE 'web/%/base_url';
Método 2: Aumentar el valor de max_input_vars en PHP
A menudo, el error ocurre porque el formulario envía más variables de las que el servidor permite procesar, rompiendo la validación de la form key.
- Accede al archivo de configuración de PHP de tu servidor (
php.ini). - Busca la directiva
max_input_vars. - Incrementa su valor a
10000o superior:max_input_vars = 10000. - Guarda los cambios y reinicia tu servicio web (Apache o Nginx) junto con PHP-FPM.
Método 3: Limpiar la Caché y Reindexar desde la Terminal
Un estado corrupto en la caché de Magento puede retener claves de formulario inválidas. Limpia el sistema ejecutando los siguientes comandos SSH:
- Conéctate a tu servidor mediante SSH y navega hasta la raíz de tu instalación de Magento.
- Ejecuta el comando para limpiar la caché:
php bin/magento cache:clean - Ejecuta el comando para limpiar el almacenamiento de caché:
php bin/magento cache:flush - Actualiza los índices si es necesario:
php bin/magento indexer:reindex