Introducción
Uno de los problemas más frustrantes para los administradores de tiendas online basadas en Adobe Commerce o Magento 2 es cuando los indexadores se quedan atascados en estado Processing o Reindex required de manera indefinida. Esto afecta directamente la actualización de precios, stock y catálogo en el frontend. En este artículo te mostraremos cómo diagnosticar y solucionar este error de indexación infinita paso a paso.
Causas comunes del error de indexación en Magento
El bloqueo en la indexación suele ocurrir por diversos motivos técnicos habituales:
- Procesos PHP anteriores colgados en segundo plano debido a un timeout.
- Tablas de la base de datos bloqueadas (locks) o corrompidas, específicamente las que terminan en
_cl(changelog). - Falta de memoria RAM asignada al proceso de PHP-CLI en el servidor.
- Conflictos con módulos de terceros que alteran la lógica del índice.
Método 1: Detener procesos activos y limpiar la tabla de estados
El primer paso consiste en eliminar los bloqueos a nivel de base de datos y matar cualquier tarea colgada.
- Accede a tu servidor mediante SSH con un usuario con privilegios.
- Detén todos los procesos de indexación en curso ejecutando el comando:
kill $(pgrep -f indextask)o reiniciando el servicio de PHP-FPM y MySQL si es necesario. - Entra a tu base de datos MySQL y vacía las tablas de estado de los indexadores ejecutando:
TRUNCATE TABLE indexer_state; - Vuelve a verificar el estado de los indexadores con el comando de Magento:
bin/magento indexer:info
Método 2: Cambiar al modo de indexación manual y reindexar por CLI
Para evitar bloqueos por concurrencia mientras el sitio recibe tráfico, es altamente recomendable cambiar la estrategia temporalmente.
- Configura los indexadores en modo por lote (schedule a save):
bin/magento indexer:set-mode schedule - Ejecuta la reindexación completa forzada desde la línea de comandos con suficiente memoria:
php -d memory_limit=2G bin/magento index:reindex - Una vez finalizado exitosamente, puedes volver al modo automático si tu infraestructura lo soporta mediante:
bin/magento indexer:set-mode realtime
Método 3: Limpieza profunda de caché y verificación de tablas changelog
Si el problema persiste, es probable que los changelogs estén corrompidos.
- Limpia la caché de la aplicación para descartar datos obsoletos:
bin/magento cache:clean - Identifica y repara las tablas con sufijo
_clen tu base de datos ejecutandoREPAIR TABLE nombre_de_la_tabla_cl;para cada una de las entidades afectadas. - Verifica los logs de Magento ubicados en
var/log/(específicamenteexception.logysystem.log) para identificar si algún módulo específico está generando la excepción que detiene el proceso.