When your customer signs up for a subscription the system generates an invoice (with an unique invoice number) to send with the transaction to the gateway. Missing/skipped invoice numbers are a result of an unsuccessful sign up.
Our system queues invoices at the time of checkout to be sent to the gateway with the transaction. If the initial signup attempt is unsuccessful resulting in a payment decline, the subscription and its corresponding invoice are not created only a transaction is created.
Since we send that unique invoice number to the gateway on the transaction attempt we can't use that invoice number again, attempting to do so would result in a gateway decline as it would be considered a duplicate invoice number, so we must “skip it” and use the next number in the sequence.