Hi team,
I am seeing inconsistent recurring invoice behavior for subscriptions billed IN_ARREAR when performing an upgrade → wait → cancel flow. I want to confirm whether this is expected or a bug.
Scenario:
Base subscription and usage are billed IN_ARREAR
Upgrade from Plan A to Plan B (same billing period alignment rules)
Both plans are EVERGREEN and recurring is billed IN_ARREAR
No phase changes
ChargedThroughDate behaves normally during upgrade
Case 1 – Cancel before any recurring invoice is generated:
Upgrade
Wait 2 days
Cancel immediately before the first recurring invoice is produced
Result:
UBB is generated immediately
Recurring invoice is generated at end of term.
Case 2 – One recurring invoice already generated, then cancel:
Upgrade
Allow one recurring invoice and UBB to be generated
Wait 2 more days
Cancel the subscription
Result:
Both UBB and recurring invoices are generated immediately on cancel.
Recurring is not delayed until end of term like in Case 1.
My questions:
Is this behavior expected for IN_ARREAR billing?
Why does recurring invoice move from end-of-term behavior (Case 1) to immediate behavior (Case 2) after the first recurring cycle is closed?
Is there any existing configuration such as:
org.killbill.invoice.align.plugin
inArrear.invoiceOnCancel=true
that affects this behavior?
Is there any known bug related to:
Cancel after an upgrade
IN_ARREAR billing
Recurring invoice generation timing?
Version:
0.22.33
Any clarification would be greatly appreciated. I just want to know whether this is expected behavior or a bug.
Thanks!