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?