Troubleshooting & Reference · Article 7.10
«El estado dice Factura final emitida pero la factura no tiene líneas»
Una condición de carrera entre `Marcar como completada` y la factura final precompilada. Si la precompilación falló silenciosamente antes de que hiciera clic en completar, el registro de factura se crea pero el PDF está vacío o es incorrecto. Recuperación: regenere la factura final.
El flujo de la factura final tiene dos etapas: precompilación (en segundo plano, en el momento en que llega el anticipo) y envío (en primer plano, cuando hace clic en Marcar como completada). La precompilación es donde se esconden la mayoría de los fallos — si Gotenberg falla durante la precompilación, el registro INV de marcador de posición existe pero su PDF está roto.
Step by step
Compruebe el menú desplegable de Documentos.
Mire INV-XXXX — si falta o está marcado como fallido, ese es el problema raíz.
Haga clic en
Regenerar factura finaldesde Acciones. El renderizador vuelve a ejecutarse con el estado actual de la propuesta (post-enmienda si corresponde).
Confirme el PDF.
Abra INV-XXXX desde Documentos; las líneas deberían estar pobladas.
Vuelva a emitir si es necesario.
Si ya había activado el correo con el PDF roto, haga clic en
Reenviar correo de factura finalpara enviar la versión corregida.
Why this works this way
Flujo de precompilación (tarea Celery prepare_final_invoice):
1. Renderizar el HTML de la factura final (Jinja).
2. Enviar a Gotenberg → bytes PDF.
3. Cargar en R2.
4. Guardar la URL en FinalInvoice.pdf_url.
Si el paso 2 o 3 falla después de los reintentos, el registro FinalInvoice existe con pdf_url = null. El estado de la propuesta permanece en Anticipo pagado y aparece un botón Reintentar factura final. Antes de la corrección (principios de 2026), el botón no siempre aparecía — el estado avanzaba a En trabajo y no se podía saber que faltaba el PDF hasta hacer clic en Marcar como completada. El comportamiento actual (corrección de mayo de 2026) bloquea el avance del estado cuando falla la precompilación, por lo que el problema surge antes.
Troubleshooting
Keep reading
Lifecycle
Status: In work — deposit settled, project running, final invoice ready
You're between the deposit and the final payment. The final invoice is pre-rendered and ready to issue when you finish. Clozo doesn't track project progress here — you do — but it's listening for you to say `done`.
Proposals & Invoices
The 4 delta branches: Δ+, Δ−, Δ=0, Δ_REFUND
Every signed amendment falls into one of four branches based on (a) the sign of the cost change and (b) whether the proposal was already paid. Each branch fires a different document chain. This is the central conceptual map for the entire amendment system.
Troubleshooting & Reference
"The invoice link is broken or the PDF is missing"
PDFs occasionally fail to render (Gotenberg flake) or fail to upload to R2. Symptom: the document shows as "issued" but clicking the link returns 404 or the PDF is blank. Recovery: regenerate from the Documents dropdown.