Section 1 finalize devuelve 422 „Invalid final data counts

Hola, estoy trabajando en N8N102 - Sección 1 (API Integration Pipeline) y estoy atascado en el punto de control final.

Mi nodo FinalizePipeline envía este payload a /course/n8n102/finalize:

{
“total_orders”: 50,
“enterprise_count”: 12,
“batch_size”: 10,
“retry_enabled”: true
}

Recibo un error 422:
“Invalid final data counts. One or more of your counts is incorrect.”

Lo que he verificado:

  • La paginación de GetOrders funciona correctamente y devuelve exactamente 50 órdenes
  • FilterDelivered devuelve correctamente 12 órdenes de empresas no entregadas
  • SendToOrdersQueue y SendToPriorityQueue ambas devolvieron respuestas exitosas en mi ejecución completa más reciente
  • Todos los valores en el payload de finalización son del tipo correcto (números/booleano, no cadenas de texto)

Mi sospecha es que esto podría estar relacionado con un envío anterior durante la depuración - originalmente completé el “Order Queue Assessment Checkpoint” antes de agregar paginación, cuando orders_queued era 10 en lugar de 50. Es posible que el servidor todavía esté comparando con ese conteo anterior en lugar de mi ejecución más reciente.

¿Podría alguien ayudarme a verificar el estado del backend para mi evaluación, o hacerme saber cómo reiniciar el progreso de esta sección para que pueda reenviar limpiamente?

Assessment ID: 7369d82545c8b10f9f5ae4f1b3579603

¡Gracias de antemano!

¡Hola @muktern8n! ¡Bienvenido!
El error enumera tus recuentos, no tu progreso, así que esta es la carga útil en lugar de un estado backend obsoleto. batch_size es el único valor que no coincide con el Paso 2.7, que usa 5. Establece BatchPriorityOrders con un tamaño de lote de 5, vuelve a ejecutar todo el flujo de trabajo de una sola vez y finaliza con batch_size: 5.
Mira esto:

@muktern8n ¡Puedes encontrar la respuesta aquí!

Añadiendo lo que dijo Anshul, dado que hay un hilo con tu mensaje de error exacto (no el de “Progress incompleted”) donde Jamie del equipo de n8n confirmó el tamaño de lote y publicó una captura de pantalla de la ejecución de referencia:

Dos cosas de ese hilo que tendría abiertas cuando vuelvas a ejecutar.

La captura de pantalla te da una forma de verificar la ejecución antes de que ni siquiera llegues a finalizar. Con 12 pedidos empresariales y un tamaño de lote de 5, BatchPriorityOrders debería mostrar 4 ejecuciones y SendToPriorityQueue debería mostrar 3 (5, 5, 2). Si el nodo de cola de prioridad aún muestra 2, entonces el bucle sigue en 10 y no confiaría en la llamada de finalizar hasta que ese número cambie. Tu total_orders 50 y enterprise_count 12 coinciden con lo que muestra la ejecución de referencia, así que batch_size realmente es el único número que está mal.

La otra cosa a la que Jamie seguía señalando, tanto en ese hilo como en el de “Missing required parameter: total_orders” de la semana pasada, son los tipos. Si el cuerpo de FinalizePipeline está en “Using Fields Below” y escribiste 50 y true directamente en los campos de valor, se envían como strings, aunque se vean bien en la interfaz.

Hola @muktern8n

Creo que el problema es batch_size.

Para el punto de control final, debería ser 5, no 10. Tus otros valores se ven correctos:

{
“total_orders”: 50,
“enterprise_count”: 12,
“batch_size”: 5,
“retry_enabled”: true
}
Cambiaría BatchPriorityOrders a un tamaño de lote de 5, luego ejecutaría el flujo de trabajo completo nuevamente de principio a fin y enviaría el punto de control final.

Así que no creo que esto esté relacionado con el envío anterior orders_queued: 10 o el estado del backend en caché. El 422 que estás recibiendo está apuntando específicamente a los conteos finales, y batch_size: 10 es el valor que no coincide con el requisito del curso.

Gracias Subham, batch_size: 5 efectivamente fue la solución, y SendToPriorityQueue ahora se ejecuta exitosamente (todos los lotes en verde, 12 elementos confirmados).

Sin embargo, FinalizePipeline ahora vuelve a un error diferente: “Progress incompleted. You have not completed all steps in this assessment.” Esto es confuso porque en esta misma ejecución completa: - SendToOrdersQueue confirmó orders_queued: 50 - SendToPriorityQueue se ejecutó en verde para todos los lotes (12 elementos en total) - FinalizePipeline payload: { “total_orders”: 50, “enterprise_count”: 12, “batch_size”: 5, “retry_enabled”: true } Todo se ejecutó correctamente en esta ejecución, pero el paso finalize sigue diciendo que el progreso está incompleto.

Esto se parece a lo que otro usuario reportó arriba con un problema similar. ¿Podría alguien verificar el estado del checkpoint de backend para mi Assessment ID?

Assessment ID: 7369d82545c8b10f9f5ae4f1b3579603

@muktern8n No se necesita una verificación de backend, el fallo está en tu flujo. Listaste órdenes en cola como 50, como prueba de que el paso 1 tuvo éxito, sin embargo, en otro hilo, se dijo que la parte del paso 1 quiere solo 10, así que necesitas desactivar la paginación.

y

Gracias por la respuesta, pero creo que esto podría no ser correcto — el documento del curso explícitamente dice en los pasos 2.1-2.2 que la paginación debe devolver 50 órdenes, y el código de confirmación para ese punto de control literalmente contiene «PAGED-ORDERS-QUEUE» en su nombre, que recibí exitosamente. El resto del ejercicio (20 Enterprise / 30 otros, 12 no entregados) solo tiene sentido con 50 órdenes, no 10.

¿Podrías compartir el hilo específico donde se mencionó «solo 10»? Quiero asegurarme de que no estoy perdiendo algún otro contexto, pero basándome en mi copia del material del curso, la paginación a 50 parece ser un paso requerido, no opcional.

@muktern8n Este es el enlace @jamiemadden_n8n es el asistente oficial de la academia, ¡así que lo que dijo debería funcionar!

lo siento, no es un enlace literal, el enlace se trunca, ¡solo haz clic en el naranja y desplázate hacia arriba!