Symptoms

Attempt to transfer a customer account to another Vendor fails with the error:

Parallels Operations Automation error #error_code # 1, extype_id # 1, module_id #AccountManager, com.parallels.pa.service.aps.exception.APSInvocationException: com.parallels.pa.service.aps.exception.APSInvocationException: The operation on resource 'f6****54-0**3-42**-*e59-*****ef5672*' is not allowed.

The account's vendor has already been changed on OA side, however, the account is still under the initial reseller on BA side.

The following error message can be seen in /var/log/pa/billing.log on BA Application server (on initial transfer attempt):

    [17-12-13 08:10:36.184 GenericWork RQ1520913 TH01971 NTE] Move account#1000512 from 1 to 1001586   
    ...
    [17-12-13 08:10:36.190 PEMGATE_Obj RQ1520913 TH01971 TRC] +++[3] ErrorMessage* PEMGATE::ChangeAccountOwner(Int, Int)(AccountID: 1001010, NewVendorAccountID: 22020022)
    [17-12-13 08:10:36.191 XMLRPC      RQ1520913 TH01971 TRC] REQUEST: pem.changeAccountOwner : { 'account_id' => 1000512, 'owner_id' => 1001586, }
    ...
    [17-12-13 08:00:38.394 GenericWork RQ1520100 TH01971 TRC] ---[6] Int bPlanRate::findByPlanResource(Int, Int)
    [17-12-13 08:00:38.394 GenericWork RQ1520100 TH01971 TRC] +++[6] void bSubscrTrf::copySubscrTrfResPriceSingle(const Int&, const Int&, const Int&)(trfID: 33770, accountID: 1001586, planRateID: Int32
    (NULL))
    ...
    [17-12-13 08:00:38.396 BM_Object   RQ1520100 TH01971 NTE] ExceptionResult: Table Resource Rate doesn't contain row with id Int32(NULL).

Cause

The subscription which belongs to the account is not synchronized with the service plan - there are obsolete resources which are not present in the service plan.

The root cause of the situation is Software Related Issue PBA-83477 'Account is transferred to new vendor in OA but not in BA'

Resolution

In order to workaround the issue, follow the next steps:

  1. Synchronize the subscription: PCP > Billing > Operation > Customers > Subscription > Synchronize > check 'Remove obsolete resource(s)' > Synchronize
  2. Execute API-method pem.changeAccountOwner to change the vendor on OA side back to initial
  3. Transfer the account from BA control panel

Contact your Technical Account Manager in order to trace the current status of #PBA-83477. Fix is planned to be included in one of the future product updates.

Internal content

Link on internal Article