Developer ToolsFree calculatorPDF, Excel, Word exportNetSuite

NetSuite API Retry Backoff Wait Time Calculator

Retrying immediately after a NetSuite concurrency error makes the problem worse. Exponential backoff spaces the retries out, and this calculator shows what that costs in elapsed time so you can choose settings that suit your SLA.

Your numbers

seconds
6 retries
seconds
seconds

Your results

Total wait, uncapped
126
Seconds of waiting across all retries.
Worst case total time
5.6 min
Waiting plus every attempt hitting its timeout.
Last delay before cap
64
Seconds.
Last delay after cap
60
Seconds.
Expected wait with full jitter
63
Full jitter picks a random delay between zero and the computed value.

Uncapped totals ignore the maximum delay, so they overstate the wait once the cap applies. Compare with the capped last delay. Honour any Retry-After header the service returns.

Save results:

Total wait seconds vs number of retries

Sweeps Maximum retries from 1 to 10, holding your other inputs fixed.

Resilient integration pattern

Optional: get a short outline of a queue and retry design for your NetSuite integration.

Optional. The tool and every export work without this. No spam.

How to use it

Set the initial delay, the multiplier applied after each failure and the maximum number of retries. Add a cap so a single wait never grows unreasonably, and enter the timeout of each attempt. The tool reports the final delay, the total wait without a cap, the expected wait when you apply full jitter, and a worst case duration where every attempt runs to its timeout. Use the worst case to decide whether the caller, queue or user can tolerate the delay.

The formula

Delay for attempt n equals the initial delay multiplied by the factor to the power n minus one. The sum of a geometric series gives the total: initial delay x (factor^retries - 1) / (factor - 1). With a 2 second start, a factor of 2 and six retries, delays are 2, 4, 8, 16, 32 and 64 seconds, for 126 seconds of waiting. Jitter randomises each delay so many clients do not retry at the same moment, which on average cuts the wait roughly in half for full jitter.

  • Delay n = base x factor^(n - 1)
  • Total = base x (factor^retries - 1) / (factor - 1)
  • Full jitter: random value between 0 and the delay
  • Worst case adds timeout for each attempt

Choosing sensible settings

For background syncs, six to eight retries with a cap around a minute is common. For user-facing calls, one or two short retries is better, then fail visibly. If many integrations share an account, jitter is essential: without it, a shared outage causes synchronised waves of retries that keep the concurrency limit saturated. Always read any Retry-After header and prefer it over your own schedule.

Common mistakes

Retrying on every error type is wrong. Retry concurrency, rate limit and transient network errors, but not validation errors or missing records, which will fail every time. Another mistake is retrying non-idempotent writes without an external ID, which creates duplicates. Finally, forgetting a retry ceiling can leave a job running for hours.

  • Retry only transient errors
  • Use an external ID or idempotency key on creates
  • Log each attempt with the delay used
  • Alert when retries are exhausted

Frequently Asked Questions

What does NetSuite return when I exceed concurrency?

REST calls typically receive an HTTP 429 response, and SOAP calls receive a concurrency related fault. Treat both as retryable with backoff, and check the response for any retry guidance.

What is full jitter?

Instead of waiting exactly the computed delay, you wait a random time between zero and that delay. It spreads retries from many clients over time and reduces repeat collisions.

How many retries are enough?

Enough to cover typical short throttling, usually three to eight, depending on how long the caller can wait. After that, move the message to a dead letter queue for inspection.

Is it safe to retry a create?

Only if the call is idempotent. Use an external ID on the record and upsert, or check for existence before creating, so a repeated request does not make a duplicate.

If your integration loses data on errors, Netray can help design a queue with safe retries and dead letter handling.