When FormAssembly encounters an error when communicating with Salesforce, your designated contact will get an error alert via email.  These errors are often minor, but sometimes they're major like "the contact wasn't created" so you should treat them all as time-sensitive.

If you don't understand an error, please file a support ticket with support@gameflow.design
Use this process only if you're comfortable in order to provide customer service to your patrons promptly.  

Disable the Form to Prevent Further Errors

If an error looks serious, you can disable the FormAssembly connectors to prevent incomplete orders from being processed (FormAssembly >> View active Class Registration Form >> Connectors >> Edit all 3 connectors >> Configure >> Set status to "Disabled" and Save.

Diagnosing Connector Errors from the Log

The emailed error notification above contains a link to the connector log.  Click this link (e.g. https://app.formassembly.com/connector_salesforce2/view_log/{Log ID})

This log is a time-stamped record of every Salesforce API request. There are 15 in each order, that look like this:

The errors above indicate that every attempt to create contacts during the order process wasn't successful - this can happen when the Salesforce User account that hosts the FormAssembly connection is modified with different permission levels.

View all Recent Errors

Adjust the logs filters to search for

  • Status = Error
  • Created = Today, or This Week

Look up a Specific Order in the Error Log

You can look up the specific order by finding Step 5, "Created Class_Registration Order". You can navigate to the new order by copying that ID and going to the related salesforce link https://{your-domain}.salesforce.com/{Order ID}

Notice that contacts and Class Registration Items are missing from the order, but Payment is NOT - that means the payment was processed, but the rest of the order information was not set up in Salesforce.  Uh oh!

Determine the Cause of the Error

Here are some common FormAssembly errors and their cause:

"Record Type ID: This ID value isn't valid for the user" - The permissions setup for the admin user that provides authorization for FormAssembly has changed.  This user should have System Administrator privilages.

"Entity is Deleted" Error.  This can be caused when you have a large number of concurrent Salesforce API requests and order clean up tasks get executed before the order is completely entered in Salesforce.  Contact Gameflow to help troubleshoot and fix.

"{value} is not a valid value for the type xsd:double".   This is caused when a field the user has entered is a text value when a number is required, for example a text value in a check or Credit Card number.  This likely requires an adjustment in Form Validation to prevent bad values, contact Gameflow to help troubleshoot and fix.

"We can't save this record because the “Class Reg Temp Cleanup” process failed." This is usually caused by a timeout for a large order or heavy onsale. This error happens at the very last step of clean up of the order, after it has been created, and it theoretically prevents clean up processes from triggering before FormAssembly is done creating records.  It's worth reviewing these orders to make sure they're accurate, but they usually are.  In general, even if this fails, the registration and payments still go through and the orders don't appear to need adjustment. 

Some things to check: Do these orders still have temporary "*" values in a contact as a placeholder? When you see a "*" in a contact (parent, participant, emergency contact) name, those are temporary placeholders to process the order that get swept up in a clean up process (you can see this happen on most orders as they get processed - this typically gets cleaned up within 30 seconds of an order).  When these stick around for longer than 5 minutes, that tends to mean that our clean up workflows have failed.  This isn't necessarily a problem, it just looks weird and should prompt a review of the order just to be safe.

Your first stop to troubleshoot with a weird looking order - if you haven't gotten an error notification on it  - is going to review the submitted form in the Form Assembly reports, which you can search by name, and confirm the order details against the submitted form. In Form Assembly >> Open the Form >> Click "Responses" and find the response to compare to the order in PatronManager.

Rebuild the order Automatically

After resolving the cause of the error, we want to rebuild any incorrect orders.

If no order exists in Salesforce AND you can confirm in the form that payment was successful, you can use this automatic process to reprocess the form and attempt to build the order from the saved data.  Because you're only retriggering the Salesforce connector, the customer will not be charged again, but may receive a duplicate order confirmation.  If you want to avoid a duplicate confirmation, use the Manual process referenced below.

Back in the log, on Step 15, there's a dropdown menu. Click "View Response" in that menu, you'll see the customers entire form entry, which is the way we can rebuild the order.  

You can also click "Reprocess" here which re-runs the Salesforce post-payment connector after the issue is resolved.  This does not re-charge the customer as the Payment Gateway Charge is a separate step - it only rebuilds a new CRO order with contacts, CRIs and CRPs from the saved data.  

To make sure the order is not double-entered, the previous order and any dependent records like CRPs and CRIs  need to be deleted.  

Repair the Order Manually - Add a Class Registration Item

To manually repair a partially created order without double-charging a customer, read this article.