Cómo solucionar los mensajes de advertencia "El siguiente módulo falta en el sistema de archivos..."

Custom search

Búsqueda personalizada
Enviado por developsite el Jue, 06/07/2023 - 08:07

Si ves una advertencia en PHP como "El siguiente módulo falta en el sistema de archivos..." (o similar) en tu sitio, esta página explica cómo solucionarlo.

La advertencia fue introducida en Drupal 7.50 y se muestra cuando Drupal intenta encontrar un módulo o tema en el sistema de archivos, pero no puede encontrarlo o no lo encuentra en el lugar esperado. Por lo general, esto indica un problema con tu sitio. No es un problema importante, pero idealmente debería solucionarse si es posible. (Consulta el registro de cambios para obtener más información sobre por qué se agregó esta advertencia, y estas instrucciones para asegurarte de que las advertencias como esta nunca se muestren a los usuarios finales de tu sitio, sino que solo se registren en los registros administrativos).

Ten en cuenta que el problema o inconsistencia en tu sitio, que ahora está causando esta advertencia, podría haber existido durante mucho tiempo sin ningún síntoma visible. La introducción del mensaje de advertencia en Drupal 7.50 lo hace visible.

Hay algunas posibles causas y soluciones correspondientes.

Has eliminado un módulo del sistema de archivos sin desactivarlo y desinstalarlo.
Soluciones posibles:

Restaura el módulo y desactívalo y desinstálalo realmente (recomendado si es posible): primero, restaura el módulo a su ubicación original en el sistema de archivos. Luego ve a la página de Módulos y desactívalo/desinstálalo desde allí, o utiliza Drush (drush dis nombre_del_módulo && drush pm-uninstall nombre_del_módulo, donde nombre_del_módulo debe reemplazarse por el nombre del módulo).
Elimina manualmente todas las huellas del módulo en la base de datos. Esta no es la solución recomendada porque muchos módulos realizan tareas importantes de limpieza durante el proceso de desactivación/desinstalación, y esta solución hará que se omitan esas tareas. En muchos casos, significa que el módulo quedará inutilizable si se intenta utilizar nuevamente en este sitio. Sin embargo, si decides utilizar esta solución (por ejemplo, para módulos obsoletos que ya no existen y que nunca se pueden agregar nuevamente), se puede hacer de varias formas. Aquí tienes algunos ejemplos:

Drupal 7
Utiliza la interfaz administrativa de clic y apuntar proporcionada por los módulos contrib de drupal.org.
Opción n.º 1: Module Missing Message Fixer
Opción n.º 2: Missing Module
Utiliza Drush
Por ejemplo, ejecuta un comando similar al siguiente:

drush sql-query "DELETE from system where type = 'module' AND name IN ('nombre_módulo_antiguo1', 'nombre_módulo_antiguo2');"
Cuando hayas terminado, borra las cachés del sitio (por ejemplo, drush cc all).

Escribe un gancho de actualización en un módulo personalizado
Puedes usar un código similar al siguiente ejemplo, que eliminará los módulos faltantes cuando se ejecute update.php:

/**
 * Eliminar registros de {system} de módulos perdidos hace mucho tiempo.
 */
function NOMBREDEMODULO_update_7100() {
  $modulos = array(


Cómo solucionar los mensajes de advertencia "El siguiente módulo falta en el sistema de archivos..."
Si ves una advertencia en PHP como "El siguiente módulo falta en el sistema de archivos..." (o similar) en tu sitio, esta página explica cómo solucionarlo.

La advertencia fue introducida en Drupal 7.50 y se muestra cuando Drupal intenta encontrar un módulo o tema en el sistema de archivos, pero no puede encontrarlo o no lo encuentra en el lugar esperado. Por lo general, esto indica un problema con tu sitio. No es un problema importante, pero idealmente debería solucionarse si es posible. (Consulta el registro de cambios para obtener más información sobre por qué se agregó esta advertencia, y estas instrucciones para asegurarte de que las advertencias como esta nunca se muestren a los usuarios finales de tu sitio, sino que solo se registren en los registros administrativos).

Ten en cuenta que el problema o inconsistencia en tu sitio, que ahora está causando esta advertencia, podría haber existido durante mucho tiempo sin ningún síntoma visible. La introducción del mensaje de advertencia en Drupal 7.50 lo hace visible.

Hay algunas posibles causas y soluciones correspondientes.

Has eliminado un módulo del sistema de archivos sin desactivarlo y desinstalarlo.
Soluciones posibles:

Restaura el módulo y desactívalo y desinstálalo realmente (recomendado si es posible): primero, restaura el módulo a su ubicación original en el sistema de archivos. Luego ve a la página de Módulos y desactívalo/desinstálalo desde allí, o utiliza Drush (drush dis nombre_del_módulo && drush pm-uninstall nombre_del_módulo, donde nombre_del_módulo debe reemplazarse por el nombre del módulo).
Elimina manualmente todas las huellas del módulo en la base de datos. Esta no es la solución recomendada porque muchos módulos realizan tareas importantes de limpieza durante el proceso de desactivación/desinstalación, y esta solución hará que se omitan esas tareas. En muchos casos, significa que el módulo quedará inutilizable si se intenta utilizar nuevamente en este sitio. Sin embargo, si decides utilizar esta solución (por ejemplo, para módulos obsoletos que ya no existen y que nunca se pueden agregar nuevamente), se puede hacer de varias formas. Aquí tienes algunos ejemplos:

Drupal 7
Utiliza la interfaz administrativa de clic y apuntar proporcionada por los módulos contrib de drupal.org.
Opción n.º 1: Module Missing Message Fixer
Opción n.º 2: Missing Module
Utiliza Drush
Por ejemplo, ejecuta un comando similar al siguiente:

drush sql-query "DELETE from system where type = 'module' AND name IN ('nombre_módulo_antiguo1', 'nombre_módulo_antiguo2');"
Cuando hayas terminado, borra las cachés del sitio (por ejemplo, drush cc all).

Escribe un gancho de actualización en un módulo personalizado
Puedes usar un código similar al siguiente ejemplo, que eliminará los módulos faltantes cuando se ejecute update.php:

/**
 * Eliminar registros de {system} de módulos perdidos hace mucho tiempo.
 */
function NOMBREDEMODULO_update_7100() {
  $modulos = array(


Cómo solucionar los mensajes de advertencia "El siguiente módulo falta en el sistema de archivos..."
Si ves una advertencia en PHP como "El siguiente módulo falta en el sistema de archivos..." (o similar) en tu sitio, esta página explica cómo solucionarlo.

La advertencia fue introducida en Drupal 7.50 y se muestra cuando Drupal intenta encontrar un módulo o tema en el sistema de archivos, pero no puede encontrarlo o no lo encuentra en el lugar esperado. Por lo general, esto indica un problema con tu sitio. No es un problema importante, pero idealmente debería solucionarse si es posible. (Consulta el registro de cambios para obtener más información sobre por qué se agregó esta advertencia, y estas instrucciones para asegurarte de que las advertencias como esta nunca se muestren a los usuarios finales de tu sitio, sino que solo se registren en los registros administrativos).

Ten en cuenta que el problema o inconsistencia en tu sitio, que ahora está causando esta advertencia, podría haber existido durante mucho tiempo sin ningún síntoma visible. La introducción del mensaje de advertencia en Drupal 7.50 lo hace visible.

Hay algunas posibles causas y soluciones correspondientes.

Has eliminado un módulo del sistema de archivos sin desactivarlo y desinstalarlo
Soluciones posibles:

Restaura el módulo y desactívalo y desinstálalo realmente (recomendado si es posible): primero, restaura el módulo a su ubicación original en el sistema de archivos. Luego ve a la página de Módulos y desactívalo/desinstálalo desde allí, o utiliza Drush (drush dis nombre_del_módulo && drush pm-uninstall nombre_del_módulo, donde nombre_del_módulo debe reemplazarse por el nombre del módulo).
Elimina manualmente todas las huellas del módulo en la base de datos. Esta no es la solución recomendada porque muchos módulos realizan tareas importantes de limpieza durante el proceso de desactivación/desinstalación, y esta solución hará que se omitan esas tareas. En muchos casos, significa que el módulo quedará inutilizable si se intenta utilizar nuevamente en este sitio. Sin embargo, si decides utilizar esta solución (por ejemplo, para módulos obsoletos que ya no existen y que nunca se pueden agregar nuevamente), se puede hacer de varias formas. Aquí tienes algunos ejemplos:

Drupal 7
Utiliza la interfaz administrativa de clic y apuntar proporcionada por los módulos contrib de drupal.org.
Opción n.º 1: Module Missing Message Fixer
Opción n.º 2: Missing Module
Utiliza Drush
Por ejemplo, ejecuta un comando similar al siguiente:

drush sql-query "DELETE from system where type = 'module' AND name IN ('nombre_módulo_antiguo1', 'nombre_módulo_antiguo2');"
Cuando hayas terminado, borra las cachés del sitio (por ejemplo, drush cc all).

Escribe un gancho de actualización en un módulo personalizado
Puedes usar un código similar al siguiente ejemplo, que eliminará los módulos faltantes cuando se ejecute update.php:

/**
 * Eliminar registros de {system} de módulos perdidos hace mucho tiempo.
 */
function NOMBREDEMODULO_update_7100() {
  $modulos = array(


Cómo solucionar los mensajes de advertencia "El siguiente módulo falta en el sistema de archivos..."
Si ves una advertencia en PHP como "El siguiente módulo falta en el sistema de archivos..." (o similar) en tu sitio, esta página explica cómo solucionarlo.

La advertencia fue introducida en Drupal 7.50 y se muestra cuando Drupal intenta encontrar un módulo o tema en el sistema de archivos, pero no puede encontrarlo o no lo encuentra en el lugar esperado. Por lo general, esto indica un problema con tu sitio. No es un problema importante, pero idealmente debería solucionarse si es posible. (Consulta el registro de cambios para obtener más información sobre por qué se agregó esta advertencia, y estas instrucciones para asegurarte de que las advertencias como esta nunca se muestren a los usuarios finales de tu sitio, sino que solo se registren en los registros administrativos).

Ten en cuenta que el problema o inconsistencia en tu sitio, que ahora está causando esta advertencia, podría haber existido durante mucho tiempo sin ningún síntoma visible. La introducción del mensaje de advertencia en Drupal 7.50 lo hace visible.

Hay algunas posibles causas y soluciones correspondientes.

Has eliminado un módulo del sistema de archivos sin desactivarlo y desinstalarlo
Soluciones posibles:

Restaura el módulo y desactívalo y desinstálalo realmente (recomendado si es posible): primero, restaura el módulo a su ubicación original en el sistema de archivos. Luego ve a la página de Módulos y desactívalo/desinstálalo desde allí, o utiliza Drush (drush dis nombre_del_módulo && drush pm-uninstall nombre_del_módulo, donde nombre_del_módulo debe reemplazarse por el nombre del módulo).
Elimina manualmente todas las huellas del módulo en la base de datos. Esta no es la solución recomendada porque muchos módulos realizan tareas importantes de limpieza durante el proceso de desactivación/desinstalación, y esta solución hará que se omitan esas tareas. En muchos casos, significa que el módulo quedará inutilizable si se intenta utilizar nuevamente en este sitio. Sin embargo, si decides utilizar esta solución (por ejemplo, para módulos obsoletos que ya no existen y que nunca se pueden agregar nuevamente), se puede hacer de varias formas. Aquí tienes algunos ejemplos:

Drupal 7
Utiliza la interfaz administrativa de clic y apuntar proporcionada por los módulos contrib de drupal.org.
Opción n.º 1: Module Missing Message Fixer
Opción n.º 2: Missing Module
Utiliza Drush
Por ejemplo, ejecuta un comando similar al siguiente:

drush sql-query "DELETE from system where type = 'module' AND name IN ('nombre_módulo_antiguo1', 'nombre_módulo_antiguo2');"
Cuando hayas terminado, borra las cachés del sitio (por ejemplo, drush cc all).

Escribe un gancho de actualización en un módulo personalizado
Puedes usar un código similar al siguiente ejemplo, que eliminará los módulos faltantes cuando se ejecute update.php:

/**
 * Eliminar registros de {system} de módulos perdidos hace mucho tiempo.
 */
function NOMBREDEMODULO_update_7100() {
  $modulos = array(


Hay algunas posibles causas y soluciones correspondientes.

Has eliminado un módulo del sistema de archivos sin desactivarlo y desinstalarlo.
Soluciones posibles:

Restaura el módulo y desactívalo y desinstálalo realmente (recomendado si es posible): Primero, restaura el módulo a su ubicación original en el sistema de archivos. Luego, ve a la página de Módulos y desactívalo/desinstálalo desde allí, o utiliza Drush (drush dis nombre_del_módulo && drush pm-uninstall nombre_del_módulo, donde nombre_del_módulo debe reemplazarse por el nombre del módulo).
Elimina manualmente todas las huellas del módulo en la base de datos. Esta no es la solución recomendada porque muchos módulos realizan tareas importantes de limpieza durante el proceso de desactivación/desinstalación, y esta solución hará que se omitan esas tareas. En muchos casos, significa que el módulo quedará inutilizable si se intenta utilizar nuevamente en este sitio. Sin embargo, si decides utilizar esta solución (por ejemplo, para módulos obsoletos que ya no existen y que nunca se pueden agregar nuevamente), se puede hacer de varias formas. Aquí tienes algunos ejemplos:

Drupal 7:
Utiliza la interfaz administrativa de clic y apuntar proporcionada por los módulos contrib de drupal.org.
Opción n.º 1: Module Missing Message Fixer
Opción n.º 2: Missing Module
Utiliza Drush. Por ejemplo, ejecuta un comando similar al siguiente:

drush sql-query "DELETE from system where type = 'module' AND name IN ('nombre_módulo_antiguo1', 'nombre_módulo_antiguo2');"
Cuando hayas terminado, borra las cachés del sitio (por ejemplo, drush cc all).

Escribe un gancho de actualización en un módulo personalizado. Puedes usar un código similar al siguiente ejemplo, que eliminará los módulos faltantes cuando se ejecute update.php:

/**
 * Eliminar registros de {system} de módulos perdidos hace mucho tiempo.
 */
function NOMBREDEMODULO_update_7100() {
  $modulos = array(
    'nombre_módulo_antiguo1',
    'nombre_módulo_antiguo2',
    'nombre_módulo_antiguo3',
  );
  db_delete('system')
    ->condition('name', $modulos, 'IN')
    ->condition('type', 'module')
    ->execute();
}
Drupal 8/9:
Habilita el módulo devel y ve a la interfaz administrativa /devel/config, edita la entrada de módulo faltante en core.extension y elimínala.
Utiliza la interfaz administrativa de clic y apuntar proporcionada por los módulos contrib de drupal.org.
Opción n.º 1: Module Missing Message Fixer
Utiliza Drush. Por ejemplo, ejecuta un comando similar al siguiente:

drush sql-query "DELETE FROM key_value WHERE collection='system.schema' AND name='nombre_del_módulo';"
Cuando hayas terminado, borra las cachés del sitio (por ejemplo, drush cr).
Asegúrate también de que la carpeta CMI se limpie del módulo desinstalado roto. Puede haber algunos archivos YAML restantes y

A veces, los elementos residuales se pueden limpiar con cron o al borrar la caché, pero esto realmente depende.

Formalmente, una desinstalación fallida califica como un error, así que lee también la sección a continuación.

Existen módulos obsoletos de una versión anterior de Drupal
Un sitio de Drupal que se actualizó de Drupal 6 a Drupal 7 también puede mostrar advertencias sobre módulos que estaban activos en Drupal 6 pero que se desactivaron antes de la actualización. Estos solo se pueden limpiar con una de las soluciones de la tabla de sistemas mencionadas anteriormente.

Por ejemplo, módulos como imagecache_ui, imageapi, filefield, optionwidgets e imagefield, que se volvieron obsoletos en las versiones de Drupal 7, aún pueden existir en la tabla de sistemas.

¿Tu sitio impulsado por un perfil de instalación tiene un módulo "faltante" que no desaparece? Verifica el archivo .info del perfil.
Si has eliminado un módulo de la base de código de un perfil de instalación y has eliminado las entradas de la tabla de sistemas con una solución de módulo faltante, pero aún ves que los módulos aparecen, verifica el archivo .info del perfil. Asegúrate de que el módulo "faltante" se haya eliminado del archivo .info de tu perfil de instalación (generalmente como una dependencia).

Hay un error en un módulo instalado en tu sitio
La última posibilidad es que haya código en tu sitio que accidentalmente le esté indicando a Drupal que busque un archivo que no existe. Esto podría ser debido a un error tipográfico en el código (donde se está buscando un nombre de módulo incorrecto), o porque el código está verificando deliberadamente un archivo que no existe pero no se ha actualizado en respuesta a este registro de cambios.

Si este parece ser el problema, intenta identificar qué código está causando el problema (por lo general, será código que llama a module_load_include(), drupal_get_path(), drupal_get_filename() u otras funciones similares). Si el código problemático está en el núcleo de Drupal o en un módulo contribuido, crea un informe de error en la cola de problemas correspondiente en Drupal.org.

Intenta generar una traza de la pila para averiguar dónde se origina el problema.

Cuando se confunde una ruta con un módulo, busca casos en los que la ruta pueda ser considerada como un módulo. Por ejemplo:

/**
 * Implementa el gancho hook_views_api().
 */
function example_views_api() {
  return array(
    'api'  => 3,
    'path' => drupal_get_path('module', 'example/views'),
  );
}
cuando debería ser:

/**
 * Implementa el gancho hook_views_api().
 */
function example_views_api() {
  return array(
    'api'  => 3,
    'path' => drupal_get_path('module', 'example') . '/views',
  );
}
Problemas con hook_system_info_alter() que llaman a otros ganchos
Algunos módulos (contribuidos) usan hook_system_info_alter() para cambiar los datos escaneados de los archivos *.info de los módulos. En el momento en que se invoca este gancho, los datos de información del módulo se están reconstruyendo, pero una

En algunos casos, estas implementaciones de hook_system_info_alter() invocan directa o indirectamente otros ganchos que utilizan los datos antiguos de información del módulo que aún están en la base de datos. Esto puede causar una advertencia de "El siguiente módulo se ha movido dentro del sistema de archivos" o posiblemente "El siguiente módulo falta en el sistema de archivos".

La mayoría de las veces esto no causa problemas reales, pero las advertencias pueden ser confusas y molestas.

Como se mencionó anteriormente, esto debe discutirse en la cola de problemas del módulo correspondiente.