If a visitor is reporting that the following error, or variation of it which includes "REQUIRED_FIELD_MISSING, accountId must be specified if contactId is not null", is appearing on the thank you page after they complete a payment with the Donations app, it is likely due to them:
- Already existing as a Contact in your Salesforce instance with the same first name, last name, and email address they used in the Contact Information section of the form; and
- Their Contact record is not associated with an Organization/Account record
Salesforce Error: sbxd.sbx_DonationsCampaignMember: execution of AfterInsert caused by: System.DmlException: ConvertLead failed. First exception on row 0; first error: REQUIRED_FIELD_MISSING, accountId must be specified if contactId is not null:  (sbxd)
If this is the case for the Donations app, any payment associated with the form submission should have gone through with the payment processor. The process then failed when attempting to create the appropriate record in Salesforce.
To resolve the issue:
- Confirm that the payment was received by logging into your account with your payment process, if the form processed a payment for Soapbox Donations; and
- Manually add the record for the action in Salesforce. For the Donations app, you can get payment information from your payment processor.
You should then add an Organization / Account record for the orphaned Contact. This will ensure that this does not occur again.
In general, it is good practice to avoid having orphaned Contacts and we'd encourage you to find and address other instances as well.