Vinculación Guaraní Moodle error

Hola, al final de toda la narración dejo 2 preguntas, por favor si me pueden dar una respuesta.

Utilizo Máquinas virtuales (VM) en ProxMox para nuestro servidor Moodle, al finalizar cada año genero un clon de la VM para conservarla como historial de Moodle. Esto permite acceder a los alumnos a sus datos de años anteriores. Paralelamente, preparo la VM de Moodle en producción para el nuevo año lectivo, pero este año por razones de seguridad se decidió no utilizar la VM del Moodle que se usó todo el año 2024, se ha decidido utilizar una VM de Moodle que se usó en el año 2023 o sea traer la VM 2023 y dejarla limpia borrando todo su contenido para uso de este año 2025.
Verifique que Guaraní este correctamente vinculado (Administrar Configuración del Sistema) y está todo ok.

Estando en Guaraní, en administrar comisiones elijo una para ir a la solapa Moodle y crear un curso… es acá donde se presentó un problema que parece estar relacionado con una inconsistencia en la comunicación entre Guaraní y Moodle, específicamente es al registrar en la Base de Datos de Guaraní el curso creado en Moodle. El cartel que se presenta dice lo siguiente: “Fallo la creación del curso en Moodle (Mensaje Moodle:)”
He investigado el error por medio del log de Guaraní y voy a intentar mostrar mi análisis del error y la posible solución que encontré… la describo por medio de 3 pasos:
PRIMER PASO:
Les muestro el logs con el error en Guaraní:

========== [ERROR][guarani] SQLSTATE[23505]: Unique violation: 7 ERROR: llave duplicada viola restricci▒n de unicidad ▒idu_int_pv_cursos_plataforma_curso_externo▒ DETAIL: Ya existe la llave (plataforma, id_curso_externo)=(1, 1205). [ERROR][guarani] Error insertando Tabla int_pv_cursos. Ya existe una Tabla int_pv_cursos con los mismos valores en: el Campo id_curso_externo y el Campo plataforma.

Mi interpretación “Llave duplicada viola restricción de unicidad”, indica que Guaraní está intentando insertar un registro en la tabla “int_pv_cursos”, pero ya existe un registro con los mismos valores en los campos “id_curso_externo” y “plataforma”.
Entré a la base de datos en PostgreSQL y veo que sí, (plataforma, id_curso_externo)=(1, 1205) ya existe un registro almacenado con el valor 1205 para este curso que se intenta crear.
Importante, pude confirmar que durante este mismo evento, el servidor Moodle recibió la petición de Guaraní y creó el curso correctamente.
Conclusión:
a) Entonces Moodle logra crear el curso sin problemas.
b) Sin embargo, Guaraní no actualiza su base de datos para reflejar que el curso fue creado, porque falló al intentar registrar los datos debido a la restricción de unicidad.
c) Como Guaraní no reconoce el curso creado, sigue mostrando la opción de “Crear” o “Vincular” lo que genera que esa comisión o materia en Guaraní quede sin vincular con un curso en Moodle.

SEGUNDO PASO:
Como Guaraní incrementa el valor para el campo “id_curso_externo” para cada intento de creación de curso y si ese valor ya existe en la tabla y coincide con plataforma = 1, genera el error de duplicado.

TERCER PASO:
Entiendo que el próximo número para el campo “id_curso_externo” que pasaría Guaraní para crear un nuevo curso tendría el valor de “1206” por eso eliminé de la tabla “int_pv_cursos” el registro que contiene el campo (id_curso_externo = 1206), luego volví a la interfaz de Guaraní a la comisión elegida, dentro de la solapa Moodle presione el botón Crear y el error NO se presentó y permitió que el proceso termine correctamente y que en la comisión de Guaraní se haya vinculado correctamente con el curso creado en Moodle, por supuesto verifique que en Moodle se haya creado el curso y el docente haya sido sincronizado correctamente.

Como dije al principio de esta narración, todo lo explicado es para formular las siguientes dos preguntas:

¿puedo vaciar la tabla “int_pv_cursos”?
(limpiándola solucioné el problema entre Guaraní y Moodle)

¿es mejor colocar en algún lugar de guaraní un número mayor al que existe en el campo “id_curso_externo” para que el próximo que genere Guaraní no exista en la tabla?

Gracias por la atención y quedo en espera de alguna respuesta!

Ir a la issue

Hola Guillermo!

Gracias por escribir sobre la situación. Ya derivamos el tema al equipo técnico para que pueda analizarlo.
La versión de guarani que utilizan es la 3.19.1? y la de moodle es la versión 3.8.3+?

Saludos!

Hola Martin.
Si.
Estamos usando Guaraní versión 3.19.1
y Moodle versión 3.8.3+

Saludos!

Hola @guillermomartinez

Les voy a pedir que hagan el paso Habilitar la Depuración para desarrolladores, luego cuando vuelva a falla en los logs instalacion/i__desarrollo/p__guarani/logs/sistema.log va a mostrar mas información sobre el error de Moodle.

En la función crearAsociarCursoComision de php/nucleo/moodle/moodle_nucleo.php primero intenta crear el curso en Moodle, si logra hacerlo hace los INSERTs en la DB. En la tabla int_pv_cursos columna id_curso_externo guarda el ID del curso recién creado.

========== [ERROR][guarani] SQLSTATE[23505]: Unique violation: 7 ERROR: llave duplicada viola restricci▒n de unicidad ▒idu_int_pv_cursos_plataforma_curso_externo▒ DETAIL: Ya existe la llave (plataforma, id_curso_externo)=(1, 1205). [ERROR][guarani] Error insertando Tabla int_pv_cursos. Ya existe una Tabla int_pv_cursos con los mismos valores en: el Campo id_curso_externo y el Campo plataforma .

En BD/Ddl/_nucleo/Indices/idu_int_pv_cursos_plataforma_curso_externo.sql existe un indice que controla que plataforma y id_curso_externo sean únicos. Entiendo que Moodle no repite los IDs de sus cursos. Lo único que se me ocurre es que en » Administración » Administrar Configuración del Sistema en lugar de agregar una plataforma nueva editaron una ya existente, entonces puede llegar a repetir los IDs de cursos por que se trata de otra instalación de Moodle que conserva la misma plataforma en la tabla int_pv_plataformas y repite los IDs de cursos debido a tratarse de otra instalación de Moodle, ¿puede ser que sea este caso?

Otra cosa que pudo haber pasado es que hayan modificado la secuencia de la tabla mdl_course de Moodle. ¿que te devuelve la siguiente query?

SELECT MAX(id) FROM mdl_course;

Saludos.

¿puedo vaciar la tabla “int_pv_cursos”?
(limpiándola solucioné el problema entre Guaraní y Moodle)

No, si la vacías perdes todas las vinculaciones. La raíz del problema es otra, revisa el mensaje anterior.

¿es mejor colocar en algún lugar de guaraní un número mayor al que existe en el campo “id_curso_externo” para que el próximo que genere Guaraní no exista en la tabla?

La columna int_pv_cursos.id_curso_externo se carga con el ID de curso que devuelve Moodle, Guaraní no calcula nada, no es una secuencia de Guaraní.

Hay dos posibles opciones:

  1. Estas usando otro instalación de Moodle para la plataforma 1, con lo cual Moodle te genera el ID de curso 1205 que existió también para otro Moodle.

  2. Estas usando la misma instalación de Moodle, pero modificaste la secuencia de la tabla mdl_course de dicho Moodle.

Saludos.

Sí, efectivamente, ese es el caso.

El Moodle 3.8.3+ que se utiliza para cada año lectivo está instalado en una máquina virtual (VM). Al finalizar el año, se genera un clon de la VM y se configura para que sea accesible a través de un alias o dominio diferente al utilizado en la institución. Luego, en la instalación de Moodle correspondiente al año que finalizó, se eliminan todas las categorías y aulas virtuales, y se crea una nueva categoría para el año que comienza. Este proceso se repite anualmente, permitiendo que el Moodle 3.8.3+ siga funcionando integrado con Guaraní.

El año pasado, en el segundo semestre, la plataforma sufrió una vulnerabilidad de seguridad. Por este motivo, al finalizar el año, se siguió el procedimiento habitual de clonado de la VM para generar el historial del año 2024. Sin embargo, en lugar de continuar utilizando la VM vulnerada (y simplemente borrar todos los cursos), optamos por restaurar una VM clonada del año 2023, que funcionó correctamente durante todo el período.

Por lo tanto, confirmo que el escenario que planteas es exactamente el que ocurrió.

Corri la consulta:

MariaDB [moodledb]> SELECT MAX(id) FROM mdl_course;
±--------+
| MAX(id) |
±--------+
| 1 |
±--------+

Cada año, al iniciar un nuevo ciclo lectivo, la VM se limpia completamente, eliminando todas las categorías y cursos existentes. En ese contexto, Guaraní no mantiene ningún vínculo de aula con Moodle.
Las nuevas aulas virtuales para el año que comienza se generan a partir de las comisiones del nuevo año lectivo. Por este motivo, considero que limpiar la tabla int_pv_cursos podría ser una solución viable en este caso.

[quote=“Leonardis, Leonel Eduardo, post:5, topic:29742, username:lleonardis”]
La columna int_pv_cursos.id_curso_externo se carga con el ID de curso que devuelve Moodle, Guaraní no calcula nada, no es una secuencia de Guaraní.

Es correcto. Como mencioné anteriormente respecto a las VM clonadas, en años anteriores siempre utilizábamos la misma VM para el nuevo ciclo lectivo, dejando los clones únicamente como historial de años anteriores. Sin embargo, en esta ocasión, decidí dejar de usar la VM habitual y, en su lugar, opté por un clon de la VM que se utilizó durante todo el año 2023 y que funcionó correctamente.

No se ha modificado la secuencia de la tabla mdl_course. De hecho, no se ha realizado ningún cambio en ninguna tabla de la base de datos de Guaraní.

Hola @guillermomartinez

Luego, en la instalación de Moodle correspondiente al año que finalizó, se eliminan todas las categorías y aulas virtuales, y se crea una nueva categoría para el año que comienza. Este proceso se repite anualmente, permitiendo que el Moodle 3.8.3+ siga funcionando integrado con Guaraní.

Si vas a eliminar los cursos de Moodle entonces si tenes que eliminar las vinculaciones en las tablas int_pv_cursos_comisiones, int_pv_cursos_llamados_mesa e int_pv_cursos.

En caso de querer mantener los cursos y conectarte a otro Moodle quizás la solución seria modificar la secuencia de la tabla mdl_course para que comience en el ultimo ID del Moodle anterior y evitar la “Unique violation” de la tabla int_pv_cursos, ej:

ALTER TABLE mdl_course AUTO_INCREMENT = 1000;

En el caso de las categorías, en » Administración » Administrar Configuración del Sistema solapa Categorías de Cursos deberías configurar la nueva.

Saludos.

Otra alternativa es en » Administración » Administrar Configuración del Sistema agregar en lugar de editar una plataforma de educación virtual existente, entonces en int_pv_plataformas se genera un nuevo ID de plataforma evitando también la “Unique violation” de la tabla int_pv_cursos. Pero en el resto de las tablas int_pv_xxx vas a tener que actualizar ese ID también.

Saludos.

Hola,

Quería comentar que he decidido vaciar las siguientes tres tablas:

  • int_pv_cursos_comisiones
  • int_pv_cursos_llamados_mesa
  • int_pv_cursos

Además, configuré el valor de AUTO_INCREMENT en mdl_course a 100 con el siguiente comando SQL:

ALTER TABLE mdl_course AUTO_INCREMENT = 100;

Gracias a esto, ahora puedo crear todos los cursos desde las comisiones de Guaraní en Moodle sin inconvenientes. ¡Muchas gracias por la ayuda!

Sin embargo, me surgió un nuevo problema que, por el momento, estoy resolviendo manualmente, pero quisiera saber si hay alguna manera de automatizarlo mediante un comando en Shell.

Descripción del problema:

Al intentar crear un curso desde una comisión en Guaraní, en algunos casos, se genera un error al sincronizar el docente con el siguiente mensaje:

Falló la actualización de docente en Moodle
(Mensaje Moodle: codingerror - Detectado un error de codificación, debe ser corregido por un programador: User ID does not exist or is deleted!)

En el log de Guaraní se muestra el ID del docente afectado.

Solución manual aplicada:

  1. En Guaraní, voy a:
    2.MATRÍCULA → PERSONAS → ADMINISTRAR PERSONAS*.
  2. Busco al docente y entro en su plantilla.
  3. En la parte inferior, en la opción Moodle, aparece el mensaje:
    5.“No se encontraron usuarios de Moodle vinculados a esta persona.”*
  4. Presiono el botón Agregar y elijo la opción Plataforma → Moodle de la institución.
  5. En la opción Usuario Moodle, aparecen opciones disponibles, pero no selecciono ninguna.
  6. Presiono Cancelar y salgo.
  7. Luego, vuelvo a la comisión correspondiente en Guaraní, voy a la solapa Moodle y presiono Actualizar Docente.

Con este procedimiento, el problema se soluciona y Moodle crea el curso correctamente, matriculando al docente.

Problema con los alumnos:

Ahora el mismo error ocurre con algunos alumnos al intentar actualizar su inscripción en Moodle. En la facultad de Derecho, hay más de 130 alumnos con este problema, lo que hace que el procedimiento manual sea muy tedioso.

Consulta:

¿Existe algún comando en Shell que permita solucionar este problema de forma masiva?

Desde ya, muchas gracias por la orientación y quedo en espera de alguna respuesta al nuevo tema, Gracias!!!

Hola @guillermomartinez

Seguramente te quedaron los usuarios vinculados en la tabla int_pv_usuarios.

Si eliminaste los usuarios en Moodle, entonces vas a tener que vaciar la tabla int_pv_usuarios, con eso evitas el error (Mensaje Moodle: codingerror - Detectado un error de codificación, debe ser corregido por un programador: User ID does not exist or is deleted!). Al ver que no existe en la tabla int_pv_usuarios los va a crear en Moodle antes de matricularlos al curso.

Si existen en Moodle, pero cambio el ID podes también limpiar la tabla int_pv_usuarios y luego ejecutar el comando vincular_usuarios_moodle.

Ver Comandos de Moodle.

Saludos.

Leonel gracias por tu respuesta, recien hoy accedo a internet y veo tu mensaje, estoy en la ciudad de Bahia Blanca y es noticia que estamos pasando por tema de lluvia cortes eléctricos y de comunicación en la ciudad.
Hoy mismo razono tu recomendación y de tener dudas envío un nuevo mensaje, gracias por tu respuesta.
Saludos!

Hola @guillermomartinez , espero que mejore pronto la situación en Bahía Blanca!!!

Dale, míralo tranquilo, revisa los Comandos de Moodle.

Saludos.

Hola Leonel,

Estuve revisando los comandos de Moodle que me enviaste a través de la siguiente URL:
https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.22.0/interfaces/moodle_comandos

El tutorial es para la versión 3.22.0 y viendo las opciones disponibles, la que mejor se adapta a mi situación es la titulada “Resolución de eliminación manual de usuarios y/o cursos en Moodle”.

Sin embargo, al intentar ejecutarla en nuestro Guaraní, me encontré con que nuestra versión actual es la 3.19.0, y parece que el comando no está disponible.

Al ejecutar:
bin/guarani resolver_eliminacion_manual_moodle

La salida en pantalla fue la siguiente:

Ejecutado: 13/03/25 17:24:42
PHP Warning: Module ‘PDO’ already loaded in Unknown on line 0
PHP Warning: Module ‘pdo_pgsql’ already loaded in Unknown on line 0
La opción ‘resolver_eliminacion_manual_moodle’ no existe

¿Sabés si hay alguna alternativa para esta versión de Guaraní o si hay una forma de habilitar este comando?

Quedo atento a tu respuesta.

Hola @guillermomartinez

Claro, en la versión 3.19.0 creo que solo dispones de Vinculación de usuarios con Moodle. Podes romper la vinculación eliminando de la tabla int_pv_usuarios, y luego vincular con usuarios de Moodle existentes ejecutando bin/guarani vincular_usuarios_moodle.

Saludos.

Hola Leonel, voy a tratar de narrar un resumen de donde estamos parados y lo que estoy haciendo con respecto a los comandos en Guaraní para vinculación de alumnos con Moodle:

1ro) Vacié de la tabla int_pv_usuarios

– Realicé un respaldo previo de la tabla, que contenía 2.840 registros.

– Luego, la tabla fue vaciada.

2do) Ejecución del comando de vinculación

– En Guaraní, ejecuté el siguiente comando:
bin/guarani vincular_usuarios_moodle

– Este proceso vinculó aproximadamente 1.800 usuarios correctamente.

3ro) Actualización de alumnos en una comisión

– Desde Guaraní, en la solapa Moodle, presioné el botón Actualizar Alumnos.

– La operación arrojó un error, distinto al previamente registrado sobre el ID del usuario. En este caso, el error indicaba que el usuario ya existía y mostraba el número de DNI asociado.

Esto mostró el log de Guaraní:

Fecha: 15-03-2025 14:41:24
Operación: Administrar Comisiones
. . . .
. . . .

[ERROR][guarani] Response:
(
[exception] => invalid_parameter_exception
[errorcode] => invalidparameter
[message] => Detectado valor de parámetro no válido
[debuginfo] => Username already exists: 47452794
)

4to) Volvi atrás todo o sea restauré la tabla int_pv_usuarios

– Dado que la situación previa al vaciamiento era más estable, decidí restaurar el backup de la tabla.

5to) En este punto voy a narrar el procedimiento manual que hacemos con el objetivo de refrescar los pasos en la solución manual que estamos implementado cuando aparece el error ID del alumno (aclaro que estos pasos no son para el error [debuginfo] => Username already exists: 47452794) que apareció arriba en los puntos explicados

Entonces estamos resolviendo la vinculación manualmente, corrigiendo cada error conforme aparece.

De las tres facultades, dos están completamente vinculadas y queda pendiente la tercera.

Entonces la solución manual implementada consiste en:

A) En Guaraní, al actualizar alumnos en Moodle, si aparece el error:
“Mensaje Moodle: codingerror - Detectado un error de codificación, debe ser corregido por un programador: User ID does not exist or is deleted!)”

B) Miramos en el log de Guaraní para conocer el ID del usuario con error.

C) Ese número de ID lo busco en el Moodle del año pasado 2024 en MariaDB trayendo el número de DNI asociado (comentario: Moodle del año pasado 2024 es la VM que dejamos como historial por problemas y trajimos una VM que se usó todo el año 2023 para usar este año 2025, los alumnos de la VM 2023 no los borramos)
Entonces con la consulta SQL conocemos el DNI.

D) Con el DNI obtenido, se ingresa a Guaraní en:
MATRÍCULA → PERSONAS → ADMINISTRAR PERSONAS

E) Se accede a la ficha del alumno y, sin realizar cambios, se presiona la opción Moodle y luego el botón Volver.

F) Tras esta acción, al actualizar nuevamente los alumnos en la comisión, la vinculación se completa correctamente en Moodle.

Comentario:
Dado que la VM actual de Moodle proviene del año 2023, los alumnos del 2024 no están en ella, lo que genera estos errores de vinculación.

Sin embargo, la solución manual mencionada arriba parece forzar a Guaraní a actualizar correctamente los datos del alumno en Moodle.

Ante todo, primero gracias por la ayuda que nos brindan y aguardamos sus comentarios y cualquier recomendación para optimizar el proceso si es posible.

Hola @guillermomartinez

[ERROR][guarani] Response:
(
[exception] => invalid_parameter_exception
[errorcode] => invalidparameter
[message] => Detectado valor de parámetro no válido
[debuginfo] => Username already exists: 47452794
)

Esto se debe a que Guaraní esta intentando crear un usuario en Moodle con el Username 47452794, pero el mismo ya existe en Moodle. El comando bin/guarani vincular_usuarios_moodle te permite vincular por varios campos de Moodle (username , fullname , email y all ), fíjate que alguno coincida entre los valores de Guaraní y Moodle, de lo contrario no va a poder vincular y los vas a tener que hacer manualmente desde » Matrícula » Personas » Administrar Personas solapa Moodle.

¿ustedes que campo usaron para vincular en el comando bin/guarani vincular_usuarios_moodle?

Saludos.

Hola Leonel,

He ejecutado “bin/guarani vincular_usuarios_moodle” en cada oportunidad, probando individualmente con las opciones username , fullname , email y all . En todos los casos, la vinculación de usuarios se realizó sin inconvenientes.

Hoy feliz mente hemos finalizado la vinculación en forma manual de todos los alumnos de las facultades, siguiendo el método manual que explicamos en los mensajes anteriores.

Sin embargo, me surgió un nuevo inconveniente.

Una alumna reportó que no puede acceder a Moodle. Al verificar, noté que no existe como usuario en el sistema Moodle. Entonces, fui a Guaraní y revisé su ficha en ADMINISTRAR PERSONAS. En la solapa Moodle, figura que fue vinculada al servidor, pero con el ID de otra persona.

En la captura adjunta se puede ver que la persona en cuestión es BUSINSKAS, pero en la solapa Moodle aparece vinculada con el ID 2499 – GALLEGOS, BENJAMÍN.

Que tipo de problema puede ser este tema?

Por las dudas revisé los pasos manuales que hice sobre varios ID esos que iba buscando sus DNI en el Moodle 2024 y luego iba a Guaraní para buscar la persona con ese DNI para entrar a su ficha y hacer clic en la solapa Moodle y con eso se arreglaba el error de vinculación, bueno todo lo que hemos hablado o explicado arriba en este foro y en ellos no hay problema o sea la persona coincide bien con sus datos en su solapa Moodle de Guaraní, por ahi pensé que los pasos manuales provocaron algún tipo de problema pero veo que no…

Quedo atento a tus comentarios y como poder solucionar este tema de que la planilla de un alumno en la opción Moodle tiene el ID de otra persona.

Hola @guillermomartinez

Que tipo de problema puede ser este tema?

Puede llegar a ser que si tienen el mismo email en Guaraní y ejecutaste el comando con la opción email entonces vincule con un usuario de Moodle que no debería.

En cuanto al Número de ID en Moodle que se usa para el login, podes revisar la función actualizar_usuarios_en_moodle. Revisa los logs instalacion/logs_comandos/comandos.log y también la salida de consola. Ojo, también lo pudo haber modificado alguien manualmente desde Moodle modificando el campo opcional Número de ID.

El comando bin/guarani vincular_usuarios_moodle usa las siguientes tablas temporales: _temp_usuarios_moodle, _temp_vinculaciones_guarani_moodle. Revisa si encontras algo raro en ellas.

Saludos.

Hola Leonel. No encuentro nada en los logs y temp que me indicaste.

Hago un análisis de un solo caso particular para comprender lo sucedido.
Caso alumna Businskas, id=2499 en Moodle.

Aclaración: Verifiqué en los logs de Guaraní que el ID 2499 no fue reportado como error al momento de Actualizar Alumnos en las comisiones para luego resolver el problema con los pasos manuales que venimos hablando en el foro.

Problema presentado: En Guaraní, MATRICULA – PERSONAS – ADMINISTRAR PERSONAS esta alumna en su opción Moodle tiene vinculado a otro alumno llamado Gallegos.

Comentario recordatorio: (Para Moodle usamos máquinas virtuales para cada año lectivo, termina un año y clonamos la VM para dejarla como historial y seguimos usando la VM preparándola borrando los cursos para generar nuevos cursos virtuales por medio de las comisiones en Guaraní, a los alumnos no los tocamos en el Moodle que sigue para el nuevo año)

Datos:

En la VM Moodle del año 2023 el ID 2499 lo tiene asignado la alumna Businskas.

En la VM Moodle del año 2024 el ID 2499 lo tiene asignado la alumna Businskas.

En la VM Moodle de este año (VM que trajimos del año 2023 y que solo borramos todos los cursos) el ID 2499 lo tiene asignado el alumno Gallegos.

En la VM Moodle de este año la alumna Businskas no existe.

¿Pudo haber hecho cambios lo que se hizo en los pasos 14/18 y 15/18 mas arriba de este tema?
los cito:

¿Qué pasos manuales puedo hacer para corregir a los alumnos que presentan este problema?

Hola @guillermomartinez

Claro, el problema que veo es que en Moodle para el año 2023 la alumna Businskas tenia el ID 2499, para el 2024 también, pero el 2025 el ID 2499 lo tiene Gallegos.

Proba invocando al siguiente ENDPOINT [HOST]/webservice/rest/server.php?wstoken=[TOKEN]&moodlewsrestformat=json&wsfunction=core_user_get_users&criteria[0][key]=id&criteria[0][value]=2499

Dichos datos los obtenes de la operación Administrar Configuración del Sistema. Lo que devuelve esa URL es lo que muestra en Administrar Personas solapa Moodle. Seguramente vuelve Gallegos y no Businskas.

Igualmente creo que la solución seria romper los vínculos de los usuarios entre Guaraní y Moodle vaciando la tabla int_pv_usuarios y volver a vincular, ej:

  1. Romper los vínculos de los usuarios entre Guaraní y Moodle:
TRUNCATE TABLE int_pv_usuarios RESTART IDENTITY;
  1. Volver a vincular:
bin/guarani vincular_usuarios_moodle -m [plataforma] -v username -s

Ese [plataforma] lo obtuve ejecutando SELECT plataforma FROM int_pv_plataformas;.

Si esta vinculando mal revisa lo siguiente:

SELECT * FROM _temp_usuarios_moodle WHERE id = 2499;

SELECT mdp_personas.* 
FROM _temp_vinculaciones_guarani_moodle 
JOIN mdp_personas ON (mdp_personas.persona = _temp_vinculaciones_guarani_moodle.persona_guarani)
WHERE _temp_vinculaciones_guarani_moodle.usuario_moodle = 2499;

Quizás hay algún campo de matcheo entre Guaraní y Moodle que sean iguales tanto para Gallegos como para Businskas.

Saludos.