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
Your results
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.
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.
Related Tools
NetSuite API Concurrency Limit Calculator
Turn request rate and response time into concurrent requests, compare against your account limit, and find the maximum safe call rate.
Developer ToolsNetSuite OAuth 2.0 Access Token Refresh Calculator
Work out how often your integrations refresh NetSuite OAuth 2.0 access tokens and how many API calls each token serves.
NetSuiteNetSuite SuiteQL Pagination Time Calculator
Calculate pages, round trips and total extraction time for a large SuiteQL result set, and see how page size and parallel threads change it.
NetSuiteSuiteScript Scheduled Script Run Count Calculator
Estimate total governance units, records per run, number of reschedules and total runtime for a scheduled script before you write it.
More Developer Tools tools
See all- NetSuite SuiteScript 2.1 RESTlet Skeleton Generator
- NetSuite SuiteScript Governance Units by Script Type
- SAP Sales Order ABAP SELECT Generator (VBAK, VBAP, VBFA)
- SAP Sales Order Create BAPI ABAP Generator (BAPI_SALESORDER_CREATEFROMDAT2)
- SAP ABAP Open Items SELECT Generator
- SAP ACDOCA SQL Query Generator
- SAP QM Inspection Lot ABAP SELECT Generator
- SAP Quality Notification Pareto SQL Query Generator
- SAP QM Usage Decision BAPI Skeleton