diff --git a/src/pretix/base/invoicing/pdf.py b/src/pretix/base/invoicing/pdf.py index 2eed2f8e33..21765a629e 100644 --- a/src/pretix/base/invoicing/pdf.py +++ b/src/pretix/base/invoicing/pdf.py @@ -148,6 +148,10 @@ class NumberedCanvas(Canvas): self.restoreState() +class InvoiceNotReadyException(Exception): + pass + + class BaseInvoiceRenderer: """ This is the base class for all invoice renderers. diff --git a/src/pretix/base/services/invoices.py b/src/pretix/base/services/invoices.py index d76c48c992..deadc4d2ff 100644 --- a/src/pretix/base/services/invoices.py +++ b/src/pretix/base/services/invoices.py @@ -51,6 +51,7 @@ from django_scopes import scope, scopes_disabled from i18nfield.strings import LazyI18nString from pretix.base.i18n import language +from pretix.base.invoicing.pdf import InvoiceNotReadyException from pretix.base.invoicing.transmission import ( get_transmission_types, transmission_providers, ) @@ -504,7 +505,7 @@ def generate_invoice(order: Order, trigger_pdf=True): return invoice -@app.task(base=TransactionAwareTask) +@app.task(base=TransactionAwareTask, throws=(InvoiceNotReadyException,)) def invoice_pdf_task(invoice: int): with scopes_disabled(): i = Invoice.objects.get(pk=invoice)