Invoice Ninja - Unable to open Bulk PDF Downloads (Emailed link)

I’ve got Invoice Ninja set up and working perfectly except for the following issue

I’m trying to bulk download PDF’s via selecting multiple in the invoices view and then under actions clicking ‘Download PDF’. A notification comes up saying “An email will be sent with the PDF’s”. Then when the email is recieved and the button to download is clicked it displays a 404 error page. The URL Presented is
***/storage/cjsOLvHRCdacmCCrJmhSCLSYsmqqkKrk/89IwzoqYrVTl3az4L1EqLiIXhzRvvVL7fuVpobkZ/GOIqhpU7IBZYzQs4b4kJjVVJ3g3cMLZI/invoices/2025-06-25_Invoices.zip

But as mentioned there’s no sub folders under /storage/ except /framework/ I’m assuming there’s an issue with permissions in the TrueNAS datasets but the datasets have the same permissions as the DB ones and they’re working fine (Including downloading emailed backups which draw from files in there.)

Steps To Reproduce

  • Go to the invoices page.
  • Select multiple invoices.
  • Click Actions → Download PDF’s
  • Open email and click download
  • 404 Error screen is returned.

Expected Behavior

2025-06-25_Invoices.zip should download

Invoice Ninja Version 5.12.0
Truenas IN App Version 1.0.67
Truenas Community 25.04.0

Have you checked the apps logs for any access errors, if there is no indication of an access problem in there? (I’d expect some type of access denied error in there) I would suggest raising an issue on the invoice ninja github.

No errors are leaping out at me but I’m also a bit of a novice at this sorry. It looks like nothings writing to the storage folder at all even when I enable all permissions for the @ everyone user too.

For anyone finding this in the future the issue has been narrowed down to this invoice-ninja: fix storage mounts by stavros-k · Pull Request #1540 · truenas/apps · GitHub

the “octane” version of Invoice Ninja is using /app/storage rather than /var/www/html/storage - would you mind taking another look at this? The “worker” container seems to be writing to /app/storage fine, but as it’s the “invoice-ninja” container that serves web traffic, the user just gets a 404 when trying to access the file.

A work around is to mount the storage folder as an ‘additional storage’ with the path of /app/storage and it’s now working perfectly! Hopefully this helps anyone else who may run into the issue.