java.lang.RuntimeException: AvaTaxClientException{errors=AvaTaxErrors{error=AvaTaxError{code='MissingAddress', message='Transactions must have both an origin and destination address.', target='HttpRequestHeaders', details=[AvaTaxErrorDetail{code='MissingAddress', number=304, message='Transactions must have both an origin and destination address.', description='The line Lines["6bfcec10-1bd1-45d7-a518-62b166ef82ac"] must have both an origin and destination address. You must either assign a 'SingleLocation' address or both a 'ShipFrom' and a 'ShipTo' address.', faultCode='Client', helpLink='https://developer.avalara.com/avatax/errors/MissingAddress', severity='Error'}]}}}
at org.killbill.billing.plugin.avatax.api.AvaTaxInvoicePluginApi.getAdditionalInvoiceItems(AvaTaxInvoicePluginApi.java:94)
at org.killbill.billing.plugin.avatax.api.AvalaraInvoicePluginApi.getAdditionalInvoiceItems(AvalaraInvoicePluginApi.java:87)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.killbill.billing.osgi.ContextClassLoaderHelper$ClassLoaderInvocationHandler$1.execute(ContextClassLoaderHelper.java:146)
at org.killbill.commons.profiling.Profiling.executeWithProfiling(Profiling.java:35)
at org.killbill.billing.osgi.ContextClassLoaderHelper$ClassLoaderInvocationHandler.handleInvocation(ContextClassLoaderHelper.java:143)
at org.killbill.commons.utils.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:91)
at com.sun.proxy.$Proxy203.getAdditionalInvoiceItems(Unknown Source)
at org.killbill.billing.invoice.InvoicePluginDispatcher.updateOriginalInvoiceWithPluginInvoiceItems(InvoicePluginDispatcher.java:342)
at org.killbill.billing.invoice.InvoiceDispatcher.processAccountWithLockAndInputTargetDate(InvoiceDispatcher.java:748)
at org.killbill.billing.invoice.InvoiceDispatcher.processAccountInternal(InvoiceDispatcher.java:412)
at org.killbill.billing.invoice.InvoiceDispatcher.processAccount(InvoiceDispatcher.java:330)
at org.killbill.billing.invoice.InvoiceDispatcher.processAccountFromNotificationOrBusEvent(InvoiceDispatcher.java:302)
at org.killbill.billing.invoice.InvoiceDispatcher.processSubscriptionInternal(InvoiceDispatcher.java:289)
at org.killbill.billing.invoice.InvoiceDispatcher.processSubscriptionForInvoiceGeneration(InvoiceDispatcher.java:264)
at org.killbill.billing.invoice.InvoiceDispatcher.processSubscriptionForInvoiceGeneration(InvoiceDispatcher.java:260)
at org.killbill.billing.invoice.InvoiceListener$1.run(InvoiceListener.java:104)
at org.killbill.billing.invoice.InvoiceListener$1.run(InvoiceListener.java:93)
at org.killbill.queue.retry.RetryableSubscriber$SubscriberQueueHandler.handleReadyNotification(RetryableSubscriber.java:89)
at org.killbill.queue.retry.RetryableHandler.handleReadyNotification(RetryableHandler.java:49)
at org.killbill.queue.retry.RetryableSubscriber.handleEvent(RetryableSubscriber.java:49)
at org.killbill.billing.invoice.InvoiceListener.handleEvent(InvoiceListener.java:230)
at org.killbill.billing.invoice.InvoiceListener.handleSubscriptionTransition(InvoiceListener.java:238)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.killbill.commons.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:106)
at org.killbill.commons.eventbus.Subscriber.lambda$dispatchEvent$0(Subscriber.java:92)
at org.killbill.commons.utils.concurrent.DirectExecutor.execute(DirectExecutor.java:34)
at org.killbill.commons.eventbus.Subscriber.dispatchEvent(Subscriber.java:89)
at org.killbill.commons.eventbus.Dispatcher$ImmediateDispatcher.dispatch(Dispatcher.java:132)
at org.killbill.commons.eventbus.EventBus.postWithException(EventBus.java:293)
at org.killbill.bus.DefaultPersistentBus.dispatchBusEventWithMetrics(DefaultPersistentBus.java:430)
at org.killbill.bus.dispatching.BusCallableCallback.dispatch(BusCallableCallback.java:42)
at org.killbill.bus.dispatching.BusCallableCallback.dispatch(BusCallableCallback.java:31)
at org.killbill.queue.dispatching.Dispatcher$CallableQueueHandler.call(Dispatcher.java:146)
at org.killbill.queue.dispatching.Dispatcher$CallableQueueHandler.call(Dispatcher.java:114)
at org.killbill.commons.concurrent.WrappedCallable.call(WrappedCallable.java:45)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.killbill.commons.concurrent.WrappedRunnable.run(WrappedRunnable.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.killbill.billing.plugin.avatax.client.AvaTaxClientException: org.killbill.billing.plugin.util.http.InvalidRequest: Invalid request
at org.killbill.billing.plugin.avatax.client.AvaTaxClient.createTransaction(AvaTaxClient.java:110)
at org.killbill.billing.plugin.avatax.api.AvaTaxTaxCalculator.buildInvoiceItems(AvaTaxTaxCalculator.java:119)
at org.killbill.billing.plugin.avatax.api.AvaTaxTaxCalculatorBase.getTax(AvaTaxTaxCalculatorBase.java:153)
at org.killbill.billing.plugin.avatax.api.AvaTaxTaxCalculatorBase.compute(AvaTaxTaxCalculatorBase.java:85)
at org.killbill.billing.plugin.avatax.api.AvaTaxInvoicePluginApi.getAdditionalInvoiceItems(AvaTaxInvoicePluginApi.java:90)
... 46 common frames omitted
Caused by: org.killbill.billing.plugin.util.http.InvalidRequest: Invalid request
at org.killbill.billing.plugin.util.http.HttpClient.executeAndWait(HttpClient.java:198)
at org.killbill.billing.plugin.util.http.HttpClient.doCall(HttpClient.java:183)
at org.killbill.billing.plugin.avatax.client.AvaTaxClient.createTransaction(AvaTaxClient.java:94)
... 50 common frames omitted
Steps to reproduce:
Expected Behavior: Subscription should be created and invoice should be generated without the tax item (since zip code is not present)
Actual Behavior: Subscription is created but invoice is not generated. The following error is seen in the logs: