[BUG-002] Error Fatal: Attempt to assign property "sortorder" on null (Moodle Gradebook) bugs (Bug Tracker)
PreguntasPágina: clave[BUG-002] Error 500: Exception - Attempt to assign property "sortorder" on null
Estado: 🟢 Corregido (EstructuraHotfix aplicado)
Severidad: Crítica (P0/P1) - Bloquea la visualización del libro de calificaciones.
Módulo: Moodle Core / Gradebook (Libro de Calificaciones)
🔍 Descripción
Se reportó un error que impedía el acceso a secciones del curso tras eliminar una categoría en el libro de calificaciones. El sistema intentaba asignar un orden de prioridad (sortorder) a un objeto que ya no existía en la base de datos, resultando en el mensaje: Exception - Attempt to assign property "sortorder" on null.
👣 Pasos para Reproducir (Origen)
-
Acceder a la configuración del Libro de Calificaciones.
-
Eliminar una Categoría de calificación existente.
-
El sistema no elimina correctamente la referencia en la tabla de ítems, dejando un registro "huérfano".
-
Intentar cargar la página de calificaciones del curso backend/frontend
🛠️ Datos Técnicos
-
Error:
Attempt to assign property "sortorder" on null -
Causa: Un ítem en
mdl_grade_itemsde tipocategoryapuntaba a uniteminstanceque ya no existía enmdl_grade_categories. -
ID de Curso afectado: 204.
✅ Resolución (Hotfix de Base de Datos)
Para corregir la inconsistencia de datos, se siguieron estos pasos:
1. Localización del registro huérfano: Se ejecutó el siguiente SQL para encontrar ítems de categoría que no tienen una categoría real asociada:
SELECT id, courseid, itemname, itemtype, categoryid, iteminstance
FROM mdl_grade_items
WHERE itemtype = 'category'
AND iteminstance NOT IN (SELECT id FROM mdl_grade_categories);
Resultado: Se identificó el ID 5,467 como el registro conflictivo.
2. Acción correctiva: Se procedió a eliminar manualmente el registro huérfano de la página):
¿Qué está pasando exactamente?(Título descriptivo).¿Cómo lo replico paso a paso?(La lista del 1 al 5 para llegar al error).¿Qué debería pasar y qué está pasando en su lugar?(Contrastetabla deexpectativas).ítems:
-
SQL
DELETE FROM mdl_grade_items WHERE id = 5467;¿EnPrevenciónqué entorno sucede?futura:(Producción,SiStaging,esteNavegador,errorIDes recurrente, se debe revisar si hay algún plugin deusuario).terceros ¿Hayinterfiriendoevidenciaconvisualel borrado estándar de Moodle otécnica?ejecutar(Screenshots,unlogsscript deconsolalimpiezaodeenlacesbaseadeSentry)datos (admin/cli/check_database_schema.php).