Symptoms

Upon placement of order in UX1, the error "Unable to complete the operation, please cancel and try again later" will be prompted to the user.


The error we can observe via browser inspect can be seen as per below :

{"fullMessage":"com.ingrammicro.imcp.library.aps.exception.APSInvocationException: Incorrect Response from APS Controller, Status Code is '500' caused by: com.parallels.pa.rest.BillingAPIFault: Plug-in is not configured. ","cause":{"error":"com.parallels.bss.rest.errors.BSSAPSError","packageId":"56d95e6b-4d23-4b0b-a0b5-7929c6029b22","message":"com.parallels.pa.rest.BillingAPIFault: Plug-in is not configured. ","http_request":"POST https://127.0.0.1:8081/pa/billing/9d09b1c5-ccf0-4214-af00-8f3c17b30906/om/xmlrpc/calc-sales-order-api"}},"message":"Plug-in is not configured. ","http_request":"POST https://ordermanagement:8081/rest/order-management/be6aed13-3ebc-4823-bbb6-5d91c2cf8b5b/orders/estimate","pkgId":"821cb973-4335-4d62-9267-33ac860ed836"}


Cause

The root cause can be identified by investigating billing.log where the Exception message can be seen with identical error message - "Plug-in is not configured" : 

[22-04-12 22:28:10.968 VERTEX_Obje RQ2872763 TH01957 TRC]       ...[6] *** INTERRUPTED BY EXCEPTION *** ItemResult* VERTEX::CalculateTaxes(DataPacket*)
[22-04-12 22:28:10.968 VERTEX_Obje RQ2872763 TH01957 NTE] Finished method VERTEX.CalculateTaxes(user = 1, SID = 0, lang = en, request = 0, localObject = 1, transaction = 4248317 (HP))
[22-04-12 22:28:10.969 VERTEX_Obje RQ2872763 TH01957 NTE]   ExceptionResult: Plug-in is not configured. 
[22-04-12 22:28:10.969 RO_2:136    RQ2872763 TH01957 TRC]      ---[5] DataPacket* RemoteObject::Call(const string&, DataPacket&, int)
[22-04-12 22:28:10.969 RemoteRes   RQ2872763 TH01957 NTE] -> User-defined exception #-2147483648 Plug-in is not configured. 
[22-04-12 22:28:10.973 RO_2:136    RQ2872763 TH01957 TRC] (RO_2:136) <35:2:136> disconnected.
[22-04-12 22:28:10.973 GenericWork RQ2872763 TH01957 TRC]     ...[4] *** INTERRUPTED BY EXCEPTION *** virtual TaxUniversalCalcResult bTax::calcTaxLod(const Account&, const std::map<Str, Str>&, Int, Int, Int, Int, Int, TaxUniversalDocDets&, TaxUniversalTaxDets&)
[22-04-12 22:28:10.973 GenericWork RQ2872763 TH01957 TRC]    ...[3] *** INTERRUPTED BY EXCEPTION *** virtual void bSalesOrder::applyTaxes(Int, std::list<OrdDet>&, bool, TaxUniversalTaxDets&)
[22-04-12 22:28:10.974 GenericWork RQ2872763 TH01957 TRC]   ...[2] *** INTERRUPTED BY EXCEPTION *** virtual void bSalesOrder::calculateTotals(Int, SalesOrderBSS&, Str, bool, bool)
[22-04-12 22:28:10.974 GenericWork RQ2872763 TH01957 TRC]  ...[1] *** INTERRUPTED BY EXCEPTION *** virtual SalesOrderBSS bSalesOrder::calculateSalesOrder(const SalesOrderParamsBSS&)
[22-04-12 22:28:10.974 BM_Object   RQ2872763 TH01957 TRC] ...[0] *** INTERRUPTED BY EXCEPTION *** ErrorMessage* BM::CalcSalesOrder_API(Str)
[22-04-12 22:28:10.974 BM_Object   RQ2872763 TH01957 NTE] Finished method BM.CalcSalesOrder_API(user = 1, SID = 0, lang = en, request = 2872763, localObject = 0, transaction = 4248317 (HP))
[22-04-12 22:28:10.974 BM_Object   RQ2872763 TH01957 NTE]   ExceptionResult: Plug-in is not configured. 


The exception error can be seen to be triggered by Tax calculation for sales order and the method VERTEX::CalculateTaxes 


Resolution


It is required to investigate vertex settings of the customer's Reseller in Billing > Settings > Taxation > Vertex > General.

If the reseller is configured to use vendor vertex settings, it is required to match the vertex configuration of Reseller's Provider inclusive of the Company Code.

In example : If Reseller L2 configuration Company Code is empty while Reseller's Provider which in this case is L1 have Company Code 9999, the error "Plug-in is not configured" can be triggered.


Reseller L2



L2's Provider (Which is Reseller L1)


Note : It is recommended to also check L1's configuration to match Provider(L0)


Internal