Error Messages - FAQ

1. Why do we get this error: First exception on row 0; first error: UNABLE_TO_LOCK_ROW, unable to obtain exclusive access to this record: []

This error message is often caused by other packages that are installed, workflows or custom coding and not necessarily by Payments2Us.  

What this means is that a record is currently being updated by another user or process.  I common cause of this is when multiple updates are performed on details records and an update also happens to the parent object.  For example, an Apex Trigger updates two contacts and at the same time, a workflow field update also changes the contacts parent account.

If this is occuring a lot, then please check the following:

  • Have you recently installed/updated another App Exchange Package like Rollup Helper or Declarative Lookup Roll-up Summaries (DLRS). Are you able to remove this for now to see if that reduces the occurrence.
  • Have you added roll up summary field to any object.
  • Have you had some custom code added/updated recently.  If so, please get your developer to review their code. The following might be of interest: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_locking_statements.htm
  • Are you running the latest version of Payments2Us.  If not, please upgrade.
  • Have you recently added a workflow field update or a Process Builder with an update.  If so, please disable and see if this reduces the occurance of this error.

If this error occurs a lot and all at once, then it could be a record is locked and that has not been cleared.  This may go away in a few hours.

If you are still having issues, please forward the error to support @ payments2us.com

 

2. When I click on a URL token to update a card/renew details and click submit, I get the following error message: "insufficient access rights on cross-reference id". What is causing it?

1. This error message can be due to Contacts and/or Accounts being set to Private as an Organisation Wide sharing default, under sharing settings in Setup.

If your organisation wants to retain that setting, follow these steps to allow access to the Site User

2. Make sure that your Merchant Facility is set to Enforce New Public Sites Security in the Payment Gateway Options field.

3. My Payment Txn keeps going to Error status, and the Error Log message says "bad value for restricted picklist"

Checking the Error log is a good place to narrow down if you are having issues with the Payment Txns or records updating.

The subject field on the error log should specify which object the issue is occuring.

Eg: the user is trying to update the field Status on the Account record with the value  Matching Start, but it's not available on that restricted picklist.

Some objects have Like/Like relationships, which can update fields with the same APi name on different objects that are related records. The fields were not intented to be linked, but due to the same APi names being used on these related objects the field on the Payment Txn is trying to update the field on the Account record. If you have found this happening in your instance, change the APi name on one of these fields.  For more information on Like/Like fields go to THIS ARTICLE.

In this example the Payment Txn Status was trying to update a Status field on the account record due to the Like/Like relationship between the fields.

TIP: This error can occur frequently in imported files. Make sure all your data is correct and matches exactly to any restricted picklist values before importing.

4. A Payment Txn has the status error, but I can't tell if the payment was successful. How can we make sure?

As the Payment Txn has several status steps, the error could have occurred at different points of the transaction.

First, check the Payment Response Text and Payment Response Code. If these are APPROVED and 00 and the Banked Field is YES, it means the transaction was successful, and the error has come from somewhere in the matching process. The Payment Txn has an Error Log related list. Chech the error log and this should give you information on what is causing the error.

If there are no error logs, try setting the Status to Matching Start, and it should update to Matching Complete. If it returns to Error there would be an Error Log record created.

If you want to be triply certain, check the txn has been successful in your payment gateway.

If the Payment Response Text and Code is not the above eg: it says DECLINED or DO NOT HONOUR and the Banked field says NO, the txn was not successful. You can find further information on the Code and Payment Response text via Google if you are unsure. This will give more information about if the card is incorrect, or the bank has put a hold on the card, and you can let the payee know.

5. I received an error with "Payment Failed - Gateway error. IO Exception: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 503 Service Unavailable". What does it mean?

This error means that the payment gateway is having diffculties linking to the bank to complete the transaction.

This can be caused if the the payers bank is having technical issues from their end eg: the bank is down.

Payments2Us goes back to recheck these txns four times a day (every six hours). If the next attempt of the txn is successful, the Status will go to
Confirmed - Checked ------Matching Complete. If the next attempt successfully links to the bank, but it is a bad txn eg: insufficient funds, do not honour, etc, the status will change to Error - Checked.

6. Payment Txns keep going to Error with the response code - D4 and response code - DECLINED. What does this code mean?

This code is specific to Windcave (formally PaymentExpress) and means that the password for the Payment Gateway PxPost credentials incorrect and too many attempts have been made so the account has been locked. It is likely that the password has changed and it has not been updated on the Merchant Facility.

You have two usernames/passwords.

  1. Is known as Payline and is for https://sec.windcave.com/pxmi3/logon . This gives you access to the online portal for all of your user transactions.
  2. The second one is known as PxPost. This is used for the payment gateway connection between Salesforce and that Payment Gateway (Windcave aka Payment Express) ie: This is the one that your online forms use.

 You’ve logged in and changed the password for (1).  This has nothing to do with the payment transactions.

 Your second username/password gets entered on the Merchant Facility tab in the spot shown in the screenshot below.

What you need to do is:

  1. Phone Windcave. https://www.windcave.com/contact
  2. Tell them your customer number is, If you're unsure what that is contact us [email protected]
  3. Ask them to unlock your PxPost Account – username is the Payment Gateway UserID field

Make a test transaction. If that still does not work, then:

  1. Recontact Windcave, quote you customer number again.
  2. Ask them to Reset the password for your PxPost Account – quote your user name, this is the Payment Gateway User IDfield
  3. Go  back into Salesforce.  Locate the Merchant Facility Tab and click edit on any Merchant Facilities that use this ID
  4. Update the password.

Please note: Payments2Us does not hold any of your Payment Gateway passwords and does not have authority to access or update.

If these credentials are used anywhere else, even outside Payments2Us, they will need to be all updated.

7. What does the following error mean? Program/Area: recurringPaymentsProcessor.finish - abortJobSubject: System.abortJob(asyncApexJob.id);Description:  You can't abort scheduled Apex jobs by calling System.abortJob with an  AsyncApexJob ID. Call System.abortJob with the parent CronTrigger ID. 

This error occurs occasionally, but does not affect your instance and no action needs to be taken.

8. Why do I get Missing Token Error message?

See  Qu. 21 - Checkout Form FAQ

9. Why do we get the error- Insert failed. First exception on row 0; first error: ENTITY_IS_DELETED, entity is deleted: []?

The error says the Import file header is deleted. Someone started the import and then deleted the import file. When the processor tries to create the line items it found the header deleted and come up with error.

The solution is to try importing the file again.

10. Why do we get the error- An error occurred whilst submitting the checkout form[012,011,...]?

 

This error occurs when a Payment attempt is made from a blocked IP address. You will have to unblock the IP address. There will be an Error log logged in "Error Log-Payments2Us" tab with instructions on the steps that needs to be done.

Go to the Merchant facility->IP address section, you will see Blocked IP addresses, please unblock those IP addresses.

See the link for Unblocking IP addresses. Merchant Facility FAQ 11.

11. What to do if I get the  Error - "No valid public key has been specified"?
  1. Make the Merchant Facility Primary
  2. Re-Authorize the app

Authorise Payments2Us

If the Payment gateway is "Ezidebit" then please check the Username, Password and Environment entered/provided on the Merchant Facility.

12. Why do we get the error Checkout Error (Timeout Error)-"Payment Failed - Gateway error. IO Exception: Read timed out"?

 The time-out error message occurs on rare occasions when doing a credit card transaction and the connection between Salesforce and the card gateway have timed out.  Due to the timeout, the system is not able to determine 100% if the transaction was successful or not.  If the Payment gateway has not responded within the 4 minutes of the transaction this error is logged.

As the gateway has not responded back, Salesforce will not have recorded if the transaction was successful or not.

Steps to take:

  1. You will need to login to your Online Portal to see if this transaction was successful or not.
  2. You will have the Payment Txn record link on the Error log to match the transaction on the Online portal.
  3. If the Payment is Successful on the portal, you can mark the Payment Txn ->Status as Payment Complete
  4. If the Payment is NOT Successful on the portal, you can mark the Payment Txn ->Status as Error

The Online Portal for

Windcave- Payline - https://sec.windcave.com/pxmi3/logon

Ezidebit- https://ezionline.ezidebit.com.au/login

Stripe-  https://stripe.com 

NAB Transact- https://transact.nab.com.au/nabtransact/

DataTrans - https://admin.datatrans.com/

Authorize.net- https://login.authorize.net/

 

13. Why do I get the error "Database.update(paymentTxnList)- field integrity exception (Guest users cannot be record owners.)"?

1. Check ALL Payment Forms to see if the Donor Care Person (user) is a Guest User. Go to user record details and check the User Licence.  Donor care becomes the owner so that email notification for large donations can be sent.

2. Check ALL Accounts to make sure owner is NOT a force.com sites one.  I.e. created prior to the Salesforce release update.

3. To improve data security for orgs with guest users, Salesforce made some security improvements. This is related to Salesforce's spring 22 update: https://help.salesforce.com/s/articleView?id=sf.networks_guest_policies_timelines.htm&type=5

14. Why do I get the error- "Token not refreshed: payments2UsBillingFetchQueueable "?

This error is pointing to the Billing area of Payments2us where you can get copies of your receipts, update your card and contact details with us.

See: https://help.payments2us.com/m/userguide/l/1386881-billing

To solve this error-

Please Go to Setup  ->Search "Remote Site Settings".  Then locate "AAkonsult" and make sure it is active.

Also, stop/restart the Batch Processor.  See FAQ 1 of https://help.payments2us.com/m/userguide/l/1194277-batch-processor-faq

If the Remote site "AAkonsult" is not there on the list, then please add the Remote site with the Remote Site URL - "https://aakonsult.my.salesforce.com" and Activate it.

 

15. How to resolve the error -"BPAYUtil.docreateCRNsPost, Organisation (XXXXXX) does not have BPAY CRN License. Please contact AAkonsult"?

If you are getting this error and you are not using BPAY feature of Payments2us.

You will have to remove the BPAY CRN rule from exsisting Contacts and Payment Txns. The error is caused by BPAY CRN Rule existing in Payment Txn and Contacts. This defaulted value might be there and then batch processor keeps retrying.

Please check the following:

1. Go to Setup->Object Manager->Payment Txn->Record Types->Payment> Edit next to  BPAY CRN Rule and see if the Default value is None.

 If NOT please make it to None and Save. See screenshots below.

2. Create two reports one for Contact and one Payment Txn and filter records with value in the BPAY CRN Rule field. You will have to remove those values in order to not get these error messages again.

16. Why do I get an Error Log email with "Program/Area: 707...."

This error is logged using an Process Builder that was supposed to be disabled as part of a Post Upgrade Step.

A new method of logging these has now been implemented and provides more details.  

Please disable the old process builder by:

  • Navigate to setup (cog top right) - Quick Find "Process Builder" and click into that option.
  • Locate Process "BatchApexErrorEvent" and click on the ">"
  • press the "Deactivate" Link

In the Email, there is a value in the Program/Area that starts with "707...".  Copy this value and use that for the instead for the "Request Id" in FAQ: Why do I get and Error Log email with a subject beginning with "Apex Batch Error, Exception: ..."

17. Why do I get and Error Log email with a subject beginning with "Apex Batch Error, Exception: ..."

In the Email Subject, there is a value next to the "RequestId:".  This value begins with "707...".  Copy this number as we will need this for later.

You will need to be a System Administrator for this procedure.

Click on Setup (1), then select Developer Console (2)

  1. Select Query Editor Tab
  2. Enter the query based of the one below.  MAKE Sure you change the value '7074Q00009vAtvr' to have the 707.... number you had copied from above

SELECT id, ApexClass.NameSpacePrefix , ApexClass.Name FROM AsyncApexJob WHERE Id = '7074Q00009vAtvr'

3. If the ApexClass.NamespacePrefix DOES NOT Show AAkPay, then proceed to the next step
   If the ApexClass.NamespacePrefix DOES Show AAkPay, then proceed to the next step, then let our support know the ApexClass.Name (4) and forward the full error message logged

If the ApexClass.NamespacePrefix DOES NOT Show AAkPay in the previous step, then you need to locate the AppExchange vendor that had the issue. This means the error WAS NOT from Payments2Us, but another AppExchange Vendor.

To locate the AppExchange Package/Vendor:

  • Click on setup cog (top right)
  • Quick Find "Installed Packages" and click into.
  • use the value in the column "ApexClass.NamespacePrefix" in previous step to locate this value in the "Namespace Prefix" column.
18. Why getting error with message containing text similar to "{call cTask.insert_tasks(?,?)},common.exception.SfdcSqlException: ORA-20067: ORA-06512: at "HAPPY.CSAVEUTILS"?

When the error message has one of the seven dwarfs in it – eg. Bashful, Doc, Dopey, Grumpy, Happy, Sleepy, and Sneezy.  Then this means it’s a low level Salesforce error. You will need to contact Salesforce support.

Before contacting Salesforce support you can also check if there are any custom workflow/process using the same Task action that is part of the managed package. If so try to create a separate task action for the custom workflow. If error still comes up, contact Salesforce support.

19. Why do I get an Error Log with subject of "Database.update(paymentTxnList)"

This error is occurring when the Payment Txn object is trying to be updated.

The update is normally part of the Batch Processor that runs every 10 minutes.  If the update fail, then the updates will be retried again 10 minutes later, so you may get the same error continually sent.

Some common errors to look out for/check are:

  • Error: Payment Form is incorrect for this Merchant Facility., Field AAkPay__Payment_Type__c

    This error message means a data issue on the Payment Txn.  It is saying that the Payment Form (api name of AAkPay__Payment_Type__c) does NOT belong to the Merchant Facility.  You may need to manually update the Payment Form and save.
    This could occur as a result of one or more of the following:
      -  you edited the Payment Form and relinked it to another Merchant Facility
      -  the URL Parameters for the checkout form have a Payment Form record Id passed in that does not match the Merchant Facility
      -  a URL Token was used and the Payment Form on this does not belong to the Merchant Facilit
      -  the Payment Txn is a recurring Payment and the related Recurring Payment - Payment Form on this does not belong to the Merchant Facility
  • Error: A message saying some data is not entered correctly.

    This could be a result of a Validation Rule that you have added to a Payment Txn, Contact, Account, Contact, Opportunity.  Use the Object Manager to check each object and look for the Validation Rules error messages to see if they match the ones below.  Validation Rules are NOT covered by our standard support - you will need Premium Support if you need further help.  Please also review creating Validation Rules on the Payment Txn Object.
20. Why do I get an Error Log with subject of "payments2UsDML.processDMLREST,p2usDML REST Error"?

Some common errors to look out for/check are:

  • Error: Read timed out

This is saying that Salesforce is taking too long to respond.  The timeout limit is 2 minutes. 

You can check for performance degradations of Salesforce service at trust.salesforce.com

If this is still happening in say an hours time, then please submit another ticket.  We believe this is at Salesforce end and not much we can do at this stage.

  • Error: You have uncommitted work pending. Please commit or rollback before calling out

This error occurs as a result of another error. Please check your Payments2us Error Log to see if there is any other error logged after the "Payments2UsDML - Callout Exception You have uncommitted work pending". You will need to solve that error in order to stop receiving further these errors.

 

21. Why do I get an Error like "Last Modified Date(Tue Jul 12 02:11:16 GMT 2022) before Create Date(Mon Aug 01 15:01:05 GMT 2022) for entity 01I2w000001qemN.: Last Modified Date, Field: LastModifiedDate"?

The root cause of this error is when we copy like for like fields from a related object such as Contact to another object, for example Payment Txn, the system is copying the Last Modified Date, but is not copying the Created Date.
For most organisations, this SHOULD NEVER  happen as audit fields like CreatedDate, LastModifiedDate are read only.

Audit fields should only be set to editable during data migrations and then turn back off after that.

From the setup:

  1. Search "User Interface"
  2. Locate the "User Interface" Menu option (not the top level expandable menu option)
  3. Make sure "Enable "Set Audit Fields upon Record Creation" and "Update Records with Inactive Owners" User Permissions" is NOT selected
  4. SAVE

21.1. Disabling Audit fields

  1. From Setup, enter User in Quick Find box and select User Interface.
  2. De-select the checkbox to disable: Enable "Set Audit Fields upon Record Creation" and "Update Records with Inactive Owners" User Permissions
  3. Click Save

21.2. The Error Log has "Program/Area: recurringPaymentsProcessor.makePayment"

This validation stopped the recurring payment processor from running.  This error needs to be addressed today before the next Recurring Payment Run as the card hold may get charged again tomorrow as the system has no record of todays run happening.

From the Error Log, you need to copy the record details from and including the first "{" to and including the last "}"

Copy this to notepad or similar and paste.

Then remove the Last modified date, including the comma prior.  Delete as shown in the highlight example.

Before Delete:

After Delete:

Click on the setup cog > then Developer Console

Then select Debug > Open Execute Anonymous Window

Copy the code below and paste into the window

string j = '';
AAkPay__Payment_Txn__c p =  (AAkPay__Payment_Txn__c) json.deserialize(j,  SObject.class);
insert p;

Select and highlight the notepad copy of the record and paste that between the single quotes in the "string j ='';"

For example the below

Press the Execute button.

This will create a new Payment Txn record.  You should be able to see this under the Payment Txn Tab.

21.3. The Error Log has "Program/Area: paymentMatchingUtil.createContacts" or "Program/Area: paymentUtil.chargeCardAndUpdate"

The error log should be linked to the Payment Txn.  Click into the Payment Txn, then check the "Banked Payment" field.  If this has YES, then change the "Status" field to "Receipting Complete" and SAVE.

22. I am getting an "Error Log Report - update(subscriptionSaveResults)" with program/area "contactUpdate.printEmailReceiptUpdate"

When a Contacts email address is updated AND that contact has a related Subscription, the "Print Email Receipt" field on the Subscription is updated with the new Contacts Email address.  This is so workflows, in particular the annual renewal are sent to the correct/updated email address.

What can happen is if a  Flow/Process Builder or Workflow has been added that is triggered by a update on the Subscription record and that updates the related Contact, then this creates a loop between the Contact and Subscription.  That is the root cause of this error and it would be an endless cycle if not prevented.

You need to either disable  the Flow/Process Builder/Workflow or update the entry Criteria so that it does not always run or does not run if the email address is changed.  

NOTE, our standard support does not custom Flow/Process Builder/Workflows.  You will need Premium Support if you need further assistance.

23. Why did I get a lot of errors after creating sample data?  The errors have Program/Area: contactUpdateProcessor.receiptPrintEmailUpdate.

When "Create Samples" is selected on the About Payments2Us Tab, this creates a "DEMO FACILITY" in the Merchant Facility Tab.

The "DEMO FACILITY" has a value assigned to the field "Print Email Receipt".

The "Print Email Receipt" receipt field is used when a Payment Txn or Contact does not have an email address.

When a Merchant Facility has the "Print Email Receipt" added or updated, this triggers off a process of assign this value the field "Print Email Receipt" on all Contacts that do NOT have an existing email address.  This is so workflows have an email address to use when needed.

During the update of contacts, the processor may have error messages.  These are what are being logged.

 

24. How can I fix the error with Program Area/payments2UsBillingUtil.checkBillingOk, subject: Payments2Us Billing Issue?

As part of the terms and conditions of using Payments2Us, you have agreed to share with some usage details that we use for billing of your service.  These details are simply number of transactions by merchant facility, by method of payment by month (there is no personally identifiable information, not $ values), just the values mentioned.

Failure to correct this could result in your license being suspended.

There is a monthly process that sends us these details in time for the monthly charging.

 

If you are getting this error, please try:

  1. If this is a Sandbox, please ignore this message.
    No further action needs to be taken.
    Later releases of Payments2Us have address the checking in Sandboxes and the error can be addressed with an upgrade.
  2. Stop/Start the Batch Processor
  3. Make sure the user(s) have either Payments2Us Standard User or Payments2Us Admin User Permission Sets assigned.
  4. Check under setup - Sharing Rules for object Merchant Facility.  If this is marked as private, then create a sharing rule so all users can see the Primary and Active Merchant Facility.
  5. Check Remote Sites for AAkonsult is enabled (details on where/how to do this is below)
  6. If the above do not address the issue, send your salesforce organisation Id to support @ payments2sus.com

 

To check if the Remotes Sites fo AAkonsult is enabled:

  1. Navigate to setup
  2. Quick find "Remote Site"
  3. Click on menu option "Remote Site Settings"
  4. If "AAkonsult" setting is not active then....
  5. ... Click Edit and make active