Dynamics 365 Integration / Field notes

Use Retry-After to Pace F&O API Retries

When Finance & Operations returns HTTP 429 for a service protection limit, the Retry-After header gives the client a wait interval. A sound client respects that signal, limits additional work while waiting and makes the delay visible to operators.

Read 429 as a service protection response

Service protection limits help protect responsiveness and availability. A 429 response means the request should wait; sending the same workload faster can extend the wait interval and increase pressure on a shared environment.

Keep throttling separate from business validation. A 429 indicates a rate or resource condition; it does not explain whether the record values satisfy the receiving business process.

Use the server-provided wait interval

Microsoft's F&O retry guidance says the response includes Retry-After when a service protection API limit is reached. Use that interval before submitting again, and avoid a tight loop that discards the header. If the header is absent or unreadable, route the event through a bounded fallback policy and record that the expected guidance was unavailable.

Interactive screens should tell users that the service is busy and prevent repeated submissions while the earlier operation is still unresolved. Background workers can defer the item and continue with unrelated work.

  • Parse Retry-After as a delay, not as permission to duplicate work
  • Set a maximum attempt or elapsed-time boundary
  • Keep the item visible while deferred
  • Preserve the original business reference

Control concurrency and request shape

A retry header cannot compensate for an integration that repeatedly submits an unnecessarily large or bursty workload. Track throttles by environment, application identity, user identity and operation type. Smooth request rates and revisit the pattern if a synchronous API is being used for a workload better suited to batch processing.

Microsoft documents synchronous OData/custom-service patterns and asynchronous batch data APIs as different options. Choose based on required response timing, volume and processing behavior; the documented volume guidance is a rule of thumb rather than a system limit.

Control concurrency and request shape: decisions and evidence
NeedCandidate patternOperational check
Immediate result for an interactive actionSynchronous OData or custom serviceBound retries and user feedback
Large scheduled import/exportBatch data API / recurring integrationPoll job completion and inspect errors
Shared-data scenario across Dataverse and F&OEvaluate dual-write where supportedConfirm maps, keys and company scope

Measure recovery, not just request volume

A useful dashboard shows throttle counts, delay time, oldest queued item, retry outcome and unresolved business exceptions. A low request count is not success if work remains stuck or users have started to re-enter the same transaction manually.

Test a controlled 429 response in a representative environment and verify that the client waits, resumes once, preserves record identity and reports the final business outcome. Do not create artificial load against a production tenant as a test method.

Primary sources

Sources and further reading.

These platform references support the technical guidance. Available features, versions and implementation requirements should be checked against your environment.