Guide · NetSuite Integration

NetSuite integration failures and recovery: what actually breaks, from Advanced Item Location Configuration to rate limits

Every NetSuite integration eventually hits the same walls: NetSuite's own request limits, a custom field or SKU that doesn't map the way you expected, and, if Advanced Item Location Configuration is enabled, an inventory item that stops returning location-level data through SOAP, REST, or SuiteScript at all. None of that is a NetSuite bug, it's the platform working as designed, and an integration that isn't built to expect it will drop orders, miss inventory updates, or silently desync. InfiPlex is built around all three: failed pulls resume from the exact checkpoint instead of starting over, every failure is logged and alertable, and inventory reads use the one query path NetSuite confirmed still works once that feature is on.

  • Resumes From The Exact CheckpointA failed pull doesn't start over, it picks up from the last successful timestamp
  • Confirmed With NetSuite, Not GuessedSOAP, REST, and SuiteScript all lose location-level inventory once Advanced Item Location Configuration is on; only SuiteQL still returns it
  • Every Failure Is Logged And AlertableAny log type can trigger a configurable email or SMS alert

Why it breaks

NetSuite's request limits, and why they matter here

NetSuite enforces two separate limits, and integrations that only guard against one still get throttled by the other. Concurrency caps how many requests can run at the same time, by default around 15, shared across every SOAP, REST, and RESTlet call an account makes; exceeding it returns an HTTP 429 on REST or a SuiteScript error code of SSS_REQUEST_LIMIT_EXCEEDED on a RESTlet. Rate limiting is separate: a rolling 60-second and 24-hour window caps total call volume regardless of how many requests are running at once, so a connection polling steadily but too often can get throttled even with just one request in flight at a time.

Recovery

A failed pull resumes, it doesn't restart

When a request fails, whether from a NetSuite limit or anything else, InfiPlex pauses and resumes from the exact point it left off rather than starting the whole pull over. If an inventory pull was working through changes since 8:32, the retry picks up from 8:32, not from the beginning of the day; the same checkpoint logic applies to order pulls. Every attempt, success or failure, is written to a searchable shop log, and any log type can trigger a configurable email or SMS alert, so a stuck connection gets noticed instead of quietly falling behind.

Multi-location inventory

Advanced Item Location Configuration: the blind spot NetSuite confirmed

Enable Advanced Item Location Configuration, a feature Multi-Location Inventory accounts commonly turn on alongside Advanced Inventory Management, and NetSuite's record-based APIs stop returning location-level inventory. The symptom is specific: the locationsList sublist on an inventory item comes back empty, and quantityAvailable has no value. It is not a permissions issue; that possibility gets ruled out first, every time, and it is still empty.

This is not a guess. Confirmed directly with NetSuite: it is a general platform limitation, not a bug in any one integration, and it applies equally to SOAP, standard REST Web Services, and SuiteScript. None of those three record-based APIs expose inventory-by-location values once that feature is on. SuiteQL is the one path that still works, because it queries NetSuite's underlying tables directly instead of depending on the record sublist those three all rely on.

InfiPlex handles this at the connection level. A Site Area can connect to NetSuite over SOAP for standard inventory, or over REST using machine-to-machine authentication, and the REST/M2M path defaults to querying inventory through SuiteQL specifically, not through the REST record API's own item endpoints, which share the same blind spot as SOAP. A single client can run one Site Area on SOAP and another on REST/SuiteQL if their setup calls for it.

Field & SKU mapping

Built for the exceptions, not just the standard fields

Order pull rules run as a filter-and-action pair. Filters can match on a standard field, like NetSuite's internal location ID being equal to a specific value, or a custom body field being not equal to a given value, and an order only pulls when every filter passes. Once it does, post-pull actions can write a value back to NetSuite, a custom boolean field flipped to true is a common pattern for marking an order as processed, or map any NetSuite field, standard or custom, into InfiPlex, including into free-form additional-info storage for values that do not have a dedicated column. The same rule engine can also exclude specific SKUs entirely, so a freight surcharge or accessorial line item never gets saved as an actual product line on the order.

Tracking

Tracking, pushed the way NetSuite needs to see it

Tracking can push back to NetSuite as soon as an order is marked fully shipped in InfiPlex, and clients rarely all want it the same way. Multiple packages can combine into a single package on the NetSuite side, using the first tracking number found, with specific order sources excluded from that consolidation entirely if they need to stay itemized. Tracking numbers can also be read the other direction, out of a NetSuite custom field, instead of only ever being written to NetSuite by InfiPlex.

On-demand

Importing orders without waiting for the next cycle

Orders normally pull on a schedule, but a specific list of NetSuite order IDs can be imported into InfiPlex immediately, on demand, without waiting for the next cron cycle to come around, a useful escape hatch when a client needs one order in now rather than at the next pull. The same pull rules that apply on schedule still apply to an on-demand import, so nothing skips the filters just because it was requested manually.

Frequently asked

Questions, answered

Why does NetSuite's locationsList come back empty over SOAP?

Once Advanced Item Location Configuration is enabled, NetSuite stops returning location-level inventory data through the locationsList sublist on inventory items. This isn't a permissions or scoping problem; it's a platform limitation confirmed directly with NetSuite.

Resources

Related pages

NetSuite syncing that survives its own limits

Checkpoint recovery, SuiteQL-accurate inventory, and a field-mapping engine built for real NetSuite accounts, not a demo. Live in 1–3 business days.

Watching a NetSuite sync fall behind or fail silently?

We run NetSuite connections across concurrency limits, custom field mappings, and multi-location inventory every day. Tell us where it's breaking and we'll help you find the actual cause. Contact us, email info@infiplex.com, or call 888‑770‑0857.

InfiPlex™ is a trademark of InfiPlex. NetSuite is a trademark of Oracle Corporation. InfiPlex is an independent integration provider and is not endorsed by or affiliated with Oracle. API behavior, limits, and platform rules are set by Oracle and change; verify current specifics in NetSuite's developer documentation before relying on them. ©2026 InfiPlex. All rights reserved.