Ir al contenido principal

Moodle 5: La mensajería no carga tras actualizar (Error lastmessagedate)

Escrito por Javier Galeote

🚨 Síntomas del cliente

El cliente reporta que, tras actualizar a Moodle 5 (desde la 4.x), al hacer clic en el icono de mensajería (burbuja de chat):

  1. El cajón de mensajería se abre pero se queda cargando (spinner infinito).

  2. No aparecen los mensajes ni los contactos.

  3. El chat interno da error de carga.

🔍 Diagnóstico técnico

Al inspeccionar la página con la consola del navegador (F12 > Console), aparece el siguiente error en rojo:

TypeError: Cannot read properties of undefined (reading 'lastmessagedate')

Causa Raíz: Conflicto entre el nuevo código Javascript de Moodle 5 y mensajes antiguos almacenados en la base de datos que contienen formato HTML o caracteres especiales. El parser de JS intenta leer el texto plano y falla al encontrar etiquetas HTML huérfanas.



🛠️ Solución (Parche Manual)

⚠️ Advertencia: Esta solución implica modificar un archivo del Core de Moodle. Este cambio se perderá si se actualiza la versión de Moodle, por lo que debe documentarse o revisarse tras futuros updates.

Pasos a seguir:

  1. Accede a los archivos del servidor (FTP/SFTP/cPanel).

  2. Localiza el siguiente archivo: public_html/message/amd/build/message_drawer_view_overview_section.min.js

  3. Edita el archivo (es un minificado, usa CTRL+F o CMD+F para buscar).

  4. Busca exactamente esta cadena de código:

    JavaScript:

    var messagePreview=$(lastMessage.text).text()

  5. Reemplázala por esta otra (añadiendo las etiquetas <p>):

    JavaScript:

    var messagePreview=$("<p>"+lastMessage.text+"</p>").text()


    (Esto fuerza a jQuery a tratar el contenido como un nodo HTML válido antes de extraer el texto).

  6. Guarda el archivo.

  7. IMPORTANTE: Ve a Moodle > Administración del sitio > Desarrollo > Purgar cachés y pulsa "Purgar todas las cachés".

✅ Verificación

  1. Recarga la página del cliente con CTRL + F5 para limpiar la caché del navegador.

  2. Abre la mensajería. Deberían cargar los contactos y conversaciones antiguas correctamente.



📝 Notas adicionales

  • Si la actividad "Chat" ha desaparecido, recordar que fue eliminada del Core en Moodle 5. Hay que instalar el plugin mod_chat manualmente desde el directorio oficial.

  • Este parche es una solución conocida por la comunidad para instancias actualizadas con bases de datos antiguas.

¿Ha quedado contestada tu pregunta?