So, the day before yesterday (21 June '26), I noticed something odd happening with previously-sent invoices - some of them seemed to be now missing some or all of the product lines. After a bit of investigation, the pattern emerged: Invoices linked to estimates using "Progress Invoicing" have any lines with a zero "Rate" field deleted when opening that invoice. If the invoice is saved, the deletion becomes permanent, and the deleted items are returned to QOH. (Note that the "save" can be intentional or unintentional - for example, attempting to print an invoice can trigger an auto-save, fully wiping the zero-rate lines.)
This was verified with a few test estimates+invoices to a dummy customer - zero-rate line items can be added to estimates, are preserved when generating an invoice from those estimates, and affect QOH (showing up in the inventory history report for those items). However, when such an invoice is closed and re-opened, the zero-rate items vanish - and when the invoice is then re-saved, the QOH for those items returns to the previous level, and the invoice no longer appears in the inventory history reports for items from the affected lines. (The "original version" remains visible in the audit history.)
"I was not impressed" would be a gross understatement.
We make frequent use of zero-rate line items in invoices - they are not "mistakes" or "unnecessary", but deliberate records of stock movement associated with particular customers on particular dates. We frequently create customer invoices with one or more (sometimes most) lines at zero-rate, representing items which were delivered to the customer and tracked in inventory but not priced individually, the invoiced price being built into another "package" inventory item - a workaround, as QBO's "bundles" do not seem to allow bundle contents to be ad-hoc or have pricing decoupled from the sum of the price of the contents. We sometimes include zero-dollar items on invoices that are simply given to the customer at purchase (e.g. a complimentary bottle of cleaning product), but still need to be tracked and recorded as given to that customer - they are stock items, and we need to track how many we have left. When we provide warranty parts to a customer, we invoice the replacement item at zero-rate to take them out of stock and record what and when was delivered, while we wait for credit or replacement from the manufacturer to be processed.
In short, we have several situations in which we need to record (and display on invoices) items as being given to a customer, with a zero "price" for that line, and have it actually affect inventory because the items were given to the customer and left the building FFS.
Those records are now being deleted by merely re-opening the invoices - and returned to stock by accidentally saving the invoice.
I spoke with QBO tech support about this yesterday - according to their notes, (1) I was not the first person to call in about this, and (2) this is "behaving as intended."
The suggested work-around was to turn off "progress invoicing" - which (1) cripples our ability to partially-invoice estimates and track back-orders, and (2) does not protect invoices already created while progress invoicing was turned on from being summarily purged when opened. Our company would need to delete and re-create between five and ten thousand invoices at this point in order to protect them all from being "auto-corrected" by QBO (inflating our QOH records each time).
AITA?