XPath error in repeated group: does not allow saving or submitting the form in KoBoCollect (offline)


Hola comunidad,
Estoy teniendo un problema serio con un formulario que utiliza grupo repetido para registrar miembros del hogar. Cuando llego al segundo, tercer, cuarto miembro, aparece el error de la primera imagen. Después de esto, ya no me permite guardar como borrador ni finalizar el formulario, y muestra un mensaje como la segunda imagen. Este error ocurre primero en la pregunta de “Sexo asignado al nacer”, pero también he notado que otras preguntas del grupo repetido pueden generar problemas similares. Además, en algunos dispositivos el formulario agrega repeticiones de forma automática sin presionar el botón “+”, y en otros casos no aparecen preguntas como “fecha de nacimiento” aunque no tienen saltos definidos.

Estoy trabajando completamente en modo offline con KoBoCollect. Agradecería mucho si alguien ha enfrentado algo parecido y puede orientarme sobre cómo solucionarlo.

Gracias de antemano.

Estimado equipo de KoBoToolbox:

Somos SIMMPLE Analítica de Datos y estamos ejecutando una encuesta en campo utilizando KoBoCollect en modo offline, con cuentas asociadas al plan Professional. Hemos identificado una serie de errores técnicos que están afectando directamente la recolección de datos en tablets Android.

Dentro del grupo de miembros del hogar (definido como grupo repetido), al registrar el segundo miembro, se presenta el siguiente mensaje de error:

Se ha producido un error

Error evaluating field ‘group_lm69z13’ (/aDSWiMhcaAt5qWwQ2ZQxUR/group_qh97z89[1]/group_lm69z13[1]):

The problem was located in Condition expression for /aDSWiMhcaAt5qWwQ2ZQxUR/group_qh97z89/group_lm69z13

XPath evaluation: type mismatch

This field is repeated:

/aDSWiMhcaAt5qWwQ2ZQxUR/group_nj8dx22[1]/miembros_hogar[1]/group_datos_miembros[1]/_24_Sexo_asignado_al_nacer[1]

/aDSWiMhcaAt5qWwQ2ZQxUR/group_nj8dx22[1]/miembros_hogar[2]/group_datos_miembros[1]/_24_Sexo_asignado_al_nacer[1]

You may need to use the indexed-repeat() function to specify which value you want.

Este error afecta inicialmente a la pregunta “Sexo asignado al nacer”, pero también se presenta en otras preguntas dentro del mismo grupo repetido, lo que sugiere un problema estructural más amplio en la lógica del formulario.

En algunos dispositivos, el formulario genera entradas adicionales para miembros del hogar sin que la persona encuestadora presione el botón “+”. Esto provoca que aparezcan secciones vacías no deseadas, que generan confusión y dificultan la finalización correcta del formulario.

Hemos detectado también que algunas preguntas como “Fecha de nacimiento”, que no tienen condiciones de salto ni lógica condicional, no se están mostrando durante la entrevista en ciertos casos. Este comportamiento es aleatorio y ha sido reportado por distintas duplas en el operativo de campo.

Estos problemas nos impiden:

  • Finalizar el formulario correctamente.
  • Guardar el formulario como borrador.
  • Enviar los formularios completados desde campo.

Agradecemos mucho su pronta atención para resolver estas incidencias y garantizar la continuidad de la recolección de datos.


Saludos cordiales,
Equipo SIMMPLE Analítica de Datos
Correo: aisimmple@simmple.com.ec

Welcome to the community, @simmple_ec! A quick question. Have you validated your XLSForm through this online validator to see if it returns any issues?

This is a bit of an obscure error that can pop up if your form logic is wrong, and can be tricky to rectify (and understand!). But basically it means that somewhere in your form you are attempting to access a question result that is located inside a repeat from a location outside that repeat.

When you have a repeat group you can reference others question results inside the same repeat with no problem; it will automatically use the same repeat iteration to fetch the other value. But when you are outside the repeat then there is no way for it to know which of the possibly many repeat iterations you want to get it from! So that’s why you have to use the indexed-repeat() operation to tell it which iteration to fetch it from.

Somewhere you probably have a calculation that is trying to reference a question that’s inside another repeat. You may have to rethink your form logic to figure out exactly how you can tell it exacty which iteration to get it from.

3 Likes