How Fabric throttling works
Fabric measures usage in capacity units (CU). Operations are smoothed: interactive operations over a short window, background operations (refreshes, pipelines, Spark) over 24 hours. When smoothed usage exceeds the capacity, you go into overage, and throttling starts in stages:
| Future usage already consumed | Effect |
|---|---|
| Up to 10 minutes | Overage protection: no throttling |
| 10–60 minutes | Interactive delay: interactive requests are delayed |
| 60 minutes – 24 hours | Interactive rejection: interactive requests fail |
| Over 24 hours | Background rejection: refreshes, pipelines and notebooks are rejected too |
Users see "slow reports" first, then errors, and finally failed scheduled jobs.
1. Find the cause in the Capacity Metrics app
Install the Microsoft Fabric Capacity Metrics app, then:
- Compute page → Utilization chart: see when usage exceeds 100%, and the Throttling tab for delay and rejection percentages.
- Drill into a time point to see the top items and operations by CU.
- Sort items by CU over 14 days. Usually a handful of items dominate: a dataset with an inefficient refresh, a Spark notebook left running, or a dataflow scheduled every 15 minutes.
2. Common culprits and fixes
| Culprit | Fix |
|---|---|
| Semantic model full refresh many times a day | Incremental refresh. Fewer refreshes. Remove unused columns. |
| Heavy DAX measures on popular reports | Optimize the DAX (Performance Analyzer), use aggregations, reduce visuals per page |
| Spark notebooks or pipelines at peak hours | Reschedule background work off-peak. Use smaller Spark pools or session timeouts. |
| Dataflow Gen2 with complex transformations | Push transformations to the source or the warehouse/lakehouse SQL |
| Everything in one capacity | Separate dev/test from production capacities |
3. Immediate relief
- Scale up the F SKU temporarily in the Azure portal (Fabric capacity resource → Change size). Changing the size gives more headroom right away.
- Pause and resume clears accumulated overage, but the carried-forward usage is billed when you pause. Use it deliberately, not as a habit.
- Turn on surge protection (where available) to limit background jobs before they push the capacity into rejection.
4. Prevent it next time
- Alert when utilization stays above 80% (metrics app, or the capacity's Azure monitoring).
- Set a capacity owner, and review the top-10 items monthly.
- Use workspace-to-capacity assignment to isolate critical reports from experimental workloads.
Note
Throttling decisions are based on smoothed usage, so a capacity can be throttled at 9 AM because of jobs that ran overnight. Always look at the 24-hour background usage, not just what's running now.