Today we learned the importance of properly maintaining inventory levels in QBO. I want to save ProAdvisors and their QBO ‘Enterprise level’ clients from going through what we went through!
It all started with a support call from a Method:CRM user: “We have duplicate invoices in QBO, and we believe your sync is causing it.”
It’s been a while since I’ve posted, but having burnt through precious days of customer service and developer time on what turned out to be a fairly simple issue with QBO inventory, I wanted to share our learnings with the QuickBooks community to prevent others from going through what we went through.
Our user: distributor using QBO+Method:CRM
Our user is a wholesale distributor of medical equipment parts. They use Method to streamline the order taking process for their 25 field staff. In Method, they create invoices using a customized workflow that simplifies the adding of the 15 to 30 line items that go on a typical invoice. Method then syncs those invoices into QBO. For them, this setup of QBO+Method gives them what they consider to be “QuickBooks Online Enterprise”.
They have roughly 600 parts in QBO. When they setup QBO they entered the parts as inventory items – however, they didn’t actually track inventory quantities, or adjust inventory levels when new stock came in. There was a little “Inventory Neglect” going on here – not a unique situation, I’m sure.
What was happening in the QBO API (geeky part)
This part’s a bit geeky, for the technically inclined! When Method synced the invoices to QuickBooks we started getting timeouts errors. After sending the invoice to QBO via the QBO API, the response from QBO would hang, and return:
“GatewayTimeout; errorCode=006002; statusCode=504”
Despite the timeout response, the original invoice request must have continued running on Intuit servers, since after 10 minutes the invoice would appear inside QBO! Yes….10 minutes.
The problem, however, is that our sync took the timeout error to mean that the invoice did not get created, and queued up a retry – causing a duplicate.
What was happening inside QBO
Our goal was to keep the client’s field staff operation humming along uninterrupted while we helped them sort out the problem.
While we dedicated developer time to diagnose the root cause, customer service did multiple things to help out the customer, such as deleting duplicate invoices manually (which hung the UI for 10 minutes each time), and writing workarounds to limit the potential for duplicates. However, inside QBO, the interface had become slow and barely usable. We’d see the following error on all transactions inside QuickBooks Online:
“Something’s not quite right – The action could not be completed because another user was creating, editing or deleting a transaction with inventory products at exactly the same time. Please try again in 30 min. If the issue persists, please contact Customer Support.“
After a good number of Method developers and customer service put days into solving this problem, we suddenly had a hunch: perhaps the ‘Inventory Neglect’ was causing QBO inventory calculations to grind to a halt, and that’s what was causing the invoices to be so slow to process?? We analyzed the 600 inventory items and only thing that stood out at us was over 50 items had large negative quantities. Which is a bad state for inventory….could that be the smoking gun?
We called the user and walked them through resetting all inventory quantities to be in the positive. It took them 30 minutes. Immediately the QBO interface was back to its normal responsiveness, new invoices synced from Method to QBO instantly, and no more errors. That was it.
QBO + Negative Quantity On Hand = Strange Behavior + Errors + Time Wasted
We will continue to work with Intuit Developer Support (who are awesome) to see if improvements can be made in the future to avoid this. In the meantime, if you have “Enterprise” level clients in QBO, and they are using inventory items, we recommend a periodic check to ensure inventory quantities are accurate. If I could save one QuickBooks ProAdvisor or their QBO ‘Enterprise’ client from spending as much time on this as we did, then this blog post will have been worth it.