Lesstep
Azure DevOps Services · REST API

"TF400733: The request has been canceled: Request was blocked due to exceeding usage of resource"

Azure DevOps Services limits how much load one account, or one pipeline, can put on the shared service. Past the limit it first delays requests, then blocks them with HTTP 429 and this message, naming the resource and the namespace that ran out. It is about the account's recent usage, not about the request itself: once the usage drops, the delays stop within five minutes. From Microsoft's Rate and usage limits and Monitor usage.

The limit

The warning before the block

Azure DevOps sends these response headers, all but X-RateLimit-Delay before requests start being delayed, so a client can slow down in time:

Finding what used it

Organization settings, Usage (Project Collection Administrators only) lists the requests of the last hour by default: by user, by pipeline, top user agents, top commands, with each request's TSTUs, delay and status (Normal, Delayed, Blocked). It centers on the 30 minutes before and after the first delayed request. The user agent and the command usually point at the script or tool.

Keeping a script or tool under it

In IntelliJ IDEA, Rider and the other JetBrains IDEs

Azure DevOps Pull Requests is a pull request plugin for JetBrains IDEs 2024.1 or later and Android Studio. Its list refresh, every 5 minutes while the tool window is open, reads the pull requests and the comment threads of up to 100 of them, 4 at a time. When Azure DevOps blocks a call, the plugin says so with Azure DevOps's own message, sends nothing more to that organization for the seconds Retry-After asks for, and does not read the rest of the discussions meanwhile; the refresh can be turned off in Settings | Tools | Azure DevOps Pull Requests. Reading is free; voting, commenting and completing are Pro, with a 30-day trial.

Get it on JetBrains Marketplace

Azure DevOps is a trademark of Microsoft Corporation; IntelliJ IDEA is a trademark of JetBrains s.r.o. This page is not affiliated with or endorsed by Microsoft or JetBrains.

More: "API resource location … is not registered on …" · TF400813 · global personal access tokens retired · 日本語