You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Recently the ADF REST API seems to time-out frequently, causing the deployment to fail. While API time-outs are a Microsoft issue, I do think a retry on the API calls should be essential. For me this is happening multiple times a day now.
Since ADF is only a rather small part of the deployment, having to re-run the whole thing for multiple projects at a time can be quite daunting.
I do would understand if you'd see this as an enhancement rather than a bug though. Please let me know how you see this issue!
To Reproduce
N/A, intermittent issue with Microsoft
Expected behaviour
When an API time-out occurs, the script should re-attempt the API call a few times, up to a configurable amount. This prevents deployments to fail.
Thanks @supercomfysoft, and sorry for the long wait. This is still valid in the current version: every object is deployed with a single API call and no retry. Since #472 (v1.17.1) a failed deployment stops the publish, so one temporary timeout fails the whole run.
Observation
In your log the request started at 08:40:02.16 and failed at 08:41:42.31, almost exactly 100 seconds later. That is the default HttpClient timeout, so the time limit ran out on the client side, and ADF may well have finished the change anyway. Retrying is safe: these calls create or update an object (HTTP PUT), so running one twice gives the same result.
Planned approach
Retry temporary errors only: request timeouts, HTTP 429 (throttling), HTTP 5xx and "concurrent operations". The wait gets longer before each retry (2, 4, 8 seconds).
Permanent errors are not retried: validation errors (BadRequest), NotFound, authorization and so on fail on the first attempt, as today.
Configurable, as you suggested, with a new publish option: $opt.MaxRetries (default 3; 0 turns retries off).
Scope: object deployment (pipelines, datasets, data flows, linked services, triggers, integration runtimes, credentials, and the AzResource deploy method). Starting and stopping triggers already has its own retry and stays as it is.
Tests first, with mocks that simulate a timeout followed by success, retries running out, a permanent error, and MaxRetries = 0.
Activity
NowinskiK commentedon Oct 16, 2026
Thanks @supercomfysoft, and sorry for the long wait. This is still valid in the current version: every object is deployed with a single API call and no retry. Since #472 (v1.17.1) a failed deployment stops the publish, so one temporary timeout fails the whole run.
Observation
In your log the request started at
08:40:02.16and failed at08:41:42.31, almost exactly 100 seconds later. That is the defaultHttpClienttimeout, so the time limit ran out on the client side, and ADF may well have finished the change anyway. Retrying is safe: these calls create or update an object (HTTPPUT), so running one twice gives the same result.Planned approach
BadRequest),NotFound, authorization and so on fail on the first attempt, as today.$opt.MaxRetries(default3;0turns retries off).AzResourcedeploy method). Starting and stopping triggers already has its own retry and stays as it is.MaxRetries = 0.Merge pull request #510 from Azure-Player/issue-295-deploy-retry