I encountered an issue where invoices are being cached without the customer data, causing the PDF to be missing the customer name and address. I noticed some warnings on the log about billing being undefined in the invoice, which seems to be the root cause of the problem.
I can consistently reproduce it by: as a customer, ordering a service, paying for it and immediately going back to the customer dashboard and selecting view and then downloading the invoice. It does not happen when I directly download the invoice without viewing it first.
If I delete the cached version on the disk and then just download the invoice, it gets generated and cached properly.
I have proforma invoices and invoice caching with PDF+JSON enabled.
Versions:
Blesta: 5.11.2
PHP: 8.3
MySQL: 8.0
OS: Debian Bookworm
There is a cache file for a broken invoice attached, as well as the logs.
broken.json
general-warning-2025-05-26.log