Follow up on Issue 1599

150 views
Skip to first unread message

Victor Medeiros

unread,
May 24, 2023, 12:03:27 PM5/24/23
to Kill Bill users mailing-list
Hey, we reported a bug a while back that is currently being tracked on gihthub as issue 1599: https://github.com/killbill/killbill/issues/1599 

Is this fix release or being worked on for kb 0.22.x version? Or has it not been prioritized yet?

thanks

karan bansal

unread,
May 25, 2023, 7:43:50 AM5/25/23
to Kill Bill users mailing-list
Hi Victor,

Thank you for following up. Let me check this with the Dev team and update you.

Regards
Karan

karan bansal

unread,
May 25, 2023, 8:53:42 AM5/25/23
to Kill Bill users mailing-list
Hi Victor,

I checked this with the Dev team. Unfortunately it has not been prioritized yet and there is no ETA at the moment. This would not be backported to 0.22 though, you will need to upgrade to 0.24.

Regards
Karan

Victor Medeiros

unread,
May 25, 2023, 10:58:57 AM5/25/23
to Kill Bill users mailing-list
Thanks Karan!

Since it has not been prioritized and we are seeing the exception quite often on our production environment, would it be possible to get a brief explanation from the team on what the method onSuccess() from InvoicePaymentControlPluginApi.class does for case: PURCHASE? 


From what i understand its checking if the payment actually happened and if it didn't, it updates the table row status to PENDING.
- Doesn't the method onSuccess() already implies the payment succeeded?
- Do you see any potential harm on having the exception being thrown on line 170 due to plugin properties being null? From what we can see the payment and invoices are generated and later updated by AttemptCompletionJanitorTask.

Thank you!

karan bansal

unread,
May 28, 2023, 4:42:31 AM5/28/23
to Kill Bill users mailing-list
Hi Victor,

You are right. The onSuccessCall() method is invoked after the payment operation is executed successfully and returns onSuccessPaymentControlResult to override the list of plugin properties.  Could you please provide more details about what issue are you facing and reason for considering exception at line 170. 

Regards
Karan

Victor Medeiros

unread,
May 29, 2023, 5:10:19 PM5/29/23
to Kill Bill users mailing-list
Hey Karan,

We are seeing that for a large number of recurring payments we get the exception on line 170 because plugin properties is empty. We have a test case where we had 140 recurring payments happening after advancing the clock and we saw this exception happened in 2 out 140 subscriptions. We tried debugging and turns out pluginProperties is empty. The fact that it doesnt always happen might indicate its a race condition as described on issue 1559. 

We are using killbill v0.22.29


Exception stacktrace:

Error during onSuccessCall for plugin='__INVOICE_PAYMENT_CONTROL_PLUGIN__', paymentExternalKey='000000-e28f-49f1-ad39-48280a22f63c'#012org.killbill.billing.control.plugin.api.PaymentControlApiException: Failed to retrieve invoiceId: #012#011at org.killbill.billing.payment.invoice.InvoicePaymentControlPluginApi.getInvoiceId(InvoicePaymentControlPluginApi.java:319)#012#011at org.killbill.billing.payment.invoice.InvoicePaymentControlPluginApi.onSuccessCall(InvoicePaymentControlPluginApi.java:170)#012#011at org.killbill.billing.payment.core.sm.control.ControlPluginRunner.executePluginOnSuccessCalls(ControlPluginRunner.java:203)#012#011at org.killbill.billing.payment.core.sm.control.OperationControlCallback.executePluginOnSuccessCalls(OperationControlCallback.java:208)#012#011at org.killbill.billing.payment.core.sm.control.CompletionControlOperation$1.doOperation(CompletionControlOperation.java:105)#012#011at org.killbill.billing.payment.core.sm.control.CompletionControlOperation$1.doOperation(CompletionControlOperation.java:74)#012#011at org.killbill.billing.payment.core.ProcessorBase$WithAccountLock.processAccountWithLock(ProcessorBase.java:179)#012#011at org.killbill.billing.payment.core.ProcessorBase$CallableWithAccountLock.call(ProcessorBase.java:162)#012#011at org.killbill.billing.payment.core.ProcessorBase$CallableWithAccountLock.call(ProcessorBase.java:143)#012#011at org.killbill.billing.payment.dispatcher.CallableWithRequestData.call(CallableWithRequestData.java:69)#012#011at org.killbill.commons.concurrent.WrappedCallable.call(WrappedCallable.java:45)#012#011at java.util.concurrent.FutureTask.run(FutureTask.java:266)#012#011at org.killbill.commons.concurrent.WrappedRunnable.run(WrappedRunnable.java:49)#012#011at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)#012#011at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)#012#011at java.lang.Thread.run(Thread.java:750)#012Caused by: org.killbill.billing.payment.api.PaymentApiException: Plugin exception Need to specify a valid invoiceId in property IPCD_INVOICE_ID#012#011

karan bansal

unread,
May 30, 2023, 12:52:33 PM5/30/23
to Kill Bill users mailing-list
Hi Victor,

Thank you for explaining this. Let me discuss this with Devs further and get back with more information.

Regards
Karan

Victor Medeiros

unread,
Jun 6, 2023, 1:20:32 PM6/6/23
to Kill Bill users mailing-list
Hey karan!

Any updates on this? Seems like plugin properties is not being serialized/is null by the time it reaches the onSuccess() method. 

Thanks! 

Sachin Jain

unread,
Aug 31, 2023, 5:59:37 PM8/31/23
to Kill Bill users mailing-list
Hello Karan,

Any updates on this? 

Thanks,
Sachin

karan bansal

unread,
Sep 1, 2023, 12:13:44 PM9/1/23
to Kill Bill users mailing-list
Hi Sachin,

I have sent a follow up to the Dev team, will update here as soon as I get more details.

Regards
Karan

Nick Mancuso

unread,
Oct 18, 2024, 10:01:39 AM10/18/24
to Kill Bill users mailing-list
Hello all,

We are also running into this issue after some configuration changes in our deployment. 


> Do you see any potential harm on having the exception being thrown on line 170 due to plugin properties being null? 

I am wondering the same ^

Best,
Nick
Reply all
Reply to author
Forward
0 new messages