Skip to main content
Best answer

"New Xero Invoice" hydration failures - 50% Failure Rate


We see roughly a 50% failure rate on hydrating and obtaining information from the Xero API using the “New Xero Invoice” option under the Xero zap step.  An example is pasted into this message with the last part of the invoice ID intentionally cut off.

Are other people seeing similar levels of Xero API failures and instabilities?  The error message is “Xero throttling”, but, a count of requests shows our account is way below the Xero API rate limit.  Further, we’ve tested this late at night and early in the morning when nothing else is going on - similar errors occur.

 

Best answer by SamB

Hey ​@StygianHC,

Just following up here to share that the bug has since been fixed! 🎉 

In case you missed the email notification that went out here’s the main details from it:

“following up on a bug with our Xero integration that you previously contacted us about. Specifically, the triggers New Sales Invoice and Updated Sales Invoice were sometimes getting timeouts or errors with a 429 status. This would have been more common when multiple invoices were created/updated at the same time.

Good news, we updated those triggers yesterday to improve the efficiency of their API requests. This should make it much less likely to get errors on these triggers, even if you have lots of items at once.

Note that for very high volumes, Xero does have API limits that you might encounter. However, because of our new improvements, even in those situations things should be more efficient at recovering from errors with auto-replay and other mechanisms.”


Thanks so much for your patience while the team were working on getting it sorted. If you run into any further issues, let us know and we’ll be happy to assist.

In the meantime, happy Zapping! ⚡

View original
Did this topic help you find an answer to your question?

4 replies

SamB
Community Manager
Forum|alt.badge.img+11
  • Community Manager
  • 7274 replies
  • February 5, 2025

Hi there, ​@StygianHC! 👋

Sorry to hear your Xero Zap keeps running into hydration errors. I did some digging and found a bug report that’s a match for this issue. While we can’t provide a timeline for a fix for that, I’ve added you to the bug report as an affected user, so you’ll be notified via email as soon as it’s sorted.

As a workaround, it looks like you might be able to subscribe to the A new invoice has been created webhook event in Xero and have it send the necessary details through to a Zap that uses a Catch Hook trigger. Xero has a guide on how to configure the webhooks here: Creating a webhook. And you can find out more about how to use Webhooks to trigger your Zaps here: Trigger Zaps from webhooks

I’m not sure if that workaround will be affected by the same issue, but hopefully, it helps keep your Zaps running in the meantime! 🤞


  • Author
  • Beginner
  • 2 replies
  • February 5, 2025

Regrettably, we’ve tried the trigger for “A New Invoice”.  That trigger fires only sporadically.  That was our original design, and it had to be discarded because the trigger fires only a small percentage of the time when a new Invoice is created in Xero.


SamB
Community Manager
Forum|alt.badge.img+11
  • Community Manager
  • 7274 replies
  • February 6, 2025

Thanks for letting me know, ​@StygianHC

In that case maybe a better workaround would be to use Schedule by Zapier to periodically trigger a Zap, and have a Custom Action load all new invoices created that day, instead of waiting for Xero to send over the new invoices. With that, you’d likely need to store a record of the invoices to check whether they’ve already been “seen” by the Zap. I’d recommend storing them in Zapier Tables since Tables actions wouldn’t incur any task usage. Then you could use a Filter inside a Loop to only carry out actions for the invoices that weren’t already added to the table.

Here’s what I’m picturing:

  • Trigger: Every Hour (Schedule by Zapier) - Runs the Zap once every hour.
  • Action: Custom Action (Xero) - Gets all invoices created to today and outputs them as line items.
  • Action: Create Loop from Line Items (Looping by Zapier) - creates loops for each invoice.
    • Action (inside loop): Find Record (Zapier Tables) - searches for the invoice in the table, if it doeesn’t find it a record will be added for that invoice.
    • Action (inside loop): Only Continue If... (Filter by Zapier) - checks that the Zap Search Was Found Status field has a value of false. This would mean that the invoice didn’t already exist in the table. 
    • Action(s) (inside loop): whatever actions you need to run for the new invoice would go here after the filter step.

Do you think that approach could work? I know the trigger wouldn’t be as instant as the New Sales Invoice trigger, but this way, you shouldn’t miss any invoices at least!


SamB
Community Manager
Forum|alt.badge.img+11
  • Community Manager
  • 7274 replies
  • Answer
  • February 11, 2025

Hey ​@StygianHC,

Just following up here to share that the bug has since been fixed! 🎉 

In case you missed the email notification that went out here’s the main details from it:

“following up on a bug with our Xero integration that you previously contacted us about. Specifically, the triggers New Sales Invoice and Updated Sales Invoice were sometimes getting timeouts or errors with a 429 status. This would have been more common when multiple invoices were created/updated at the same time.

Good news, we updated those triggers yesterday to improve the efficiency of their API requests. This should make it much less likely to get errors on these triggers, even if you have lots of items at once.

Note that for very high volumes, Xero does have API limits that you might encounter. However, because of our new improvements, even in those situations things should be more efficient at recovering from errors with auto-replay and other mechanisms.”


Thanks so much for your patience while the team were working on getting it sorted. If you run into any further issues, let us know and we’ll be happy to assist.

In the meantime, happy Zapping! ⚡