Hi,
This is a common situation in Odoo 12 and typically not a bug. Here's what might be happening:
Odoo reserves the next invoice number as soon as an invoice is
created, even in draft. If the invoice is later canceled or never
validated, the number still counts as used.
Sequence numbers
are not rolled back. Once assigned, they are never reused—even if the
invoice is discarded or fails due to validation errors.
Custom code or external systems (like API integrations) may trigger
invoice creation in the background, unintentionally consuming sequence
numbers.
Multiple users working at the same time can also
lead to skipped numbers, especially if someone starts an invoice and
abandons it.
Even without deletion (which you've blocked), canceled or draft invoices may be responsible for the missing numbers.
From an accounting perspective, gaps in invoice sequences are
acceptable as long as the numbering remains unique and chronological.
Hope it helps.