Power BI Refresh Failed: Reading the Error Instead of Guessing
Refresh fails, the message is long, and the instinct is to click Refresh again. Power BI errors are unusually literal: nearly all of them name the thing that is missing. Reading the message is faster than any of the fixes people try first.
What you do: open Power Query, click down the Applied Steps until one shows the error, and read what it is asking for. That locates the fault in under a minute in most cases.
The short version. The report did not break. The source changed, and the query still describes the old one.
The seven causes
1. A column was renamed or removed upstream
The key did not match any rows in the table, or Column X of the table wasn't found.
Power Query hard-codes column names into steps such as Changed Type and Removed Columns. Rename Amount to Amount_GBP in the source and every step naming it fails.
The fix is to rename it back at the top of the query, immediately after the source step, so the rest of the query never sees the change. The durable version is to be less specific in the first place: choose the columns you want rather than removing the ones you do not, so new columns arriving upstream cannot break anything.
2. A data type changed
We couldn't convert to Number, or a column of nulls where values used to be.
A text value has appeared in a numeric column, often N/A or a total row that crept into an export. Set the type with locale where the source is regional, and add a step that removes rows that are not data before typing anything. Watch for a column that used to be whole numbers arriving with decimals, which changes the type Power Query infers on a fresh load.
3. The file path only exists on your laptop
The file couldn't be accessed in the Service, while Desktop refreshes fine.
C:\Users\you\Downloads\data.xlsx is invisible to the Service. Move the file to SharePoint or OneDrive and connect through the web or SharePoint connector, or install an on-premises data gateway. Also: use a parameter for the folder path so the same file can move without editing every query.
4. Credentials expired or were never set in the Service
Failed to update data source credentials.
Desktop credentials and Service credentials are separate stores. Set them in the Service under the dataset settings, Data source credentials. Password changes, expired tokens and revoked OAuth consent all land here, and the fix is always in the Service rather than in the file.
5. No gateway for an on-premises source
You don't have any gateway installed or configured.
Any source that lives inside your network, including a SQL Server and a network share, needs the on-premises data gateway installed on a machine that is switched on when the refresh runs. A gateway on a laptop that sleeps at night is the reason for a scheduled refresh that fails only overnight.
6. Privacy levels clash
Information is required about data privacy, or a formula firewall error.
Power Query blocks combining sources when a value from a private source could be sent to another source, for example a customer id from a private file used in a web query. Set consistent privacy levels in File, Options, Data source settings, or turn the check off for sources you control and understand.
7. Query folding broke and the refresh now times out
Not an error message so much as a refresh that used to take a minute and now takes forty.
Query folding means Power Query pushes your steps back to the database as SQL. Some steps cannot fold, and everything after the first non-folding step is done locally, row by row, in memory. Right click a step and look for View Native Query: if it is greyed out, folding has stopped at or before that step. Move the non-folding steps as late as possible.
Diagnosing in order
| Step | What it tells you |
|---|---|
| Read the full error, including the detail expander | Usually names the column or file |
| Open Power Query and click every Applied Step | The first step showing the error is the fault line |
| Compare Desktop against Service | Works in Desktop only means credentials, gateway or path |
| Check the refresh history in the Service | Tells you when it last worked, which dates the change |
| Open the source itself | Half of all refresh errors are a changed export |
Making refreshes fail less
- Select the columns you need rather than removing the ones you do not. New columns then cannot break the query.
- Parameterise paths and dates, so a moved folder is one edit.
- Do not type columns in the middle of a query. Type once, near the end, after the shape is settled.
- Keep a row-count and a max-date card on page one of the report. Stale or empty data becomes visible to everyone, not just to you.
- Set failure notifications in the dataset settings so you learn about it before the audience does.
How to apply this to your own work
- Open your most important report and check whether it has any absolute local file paths in its sources.
- Add the row-count and max-date cards today. It is fifteen minutes and it catches the silent failures.
- Check who owns each upstream source and ask to be told about schema changes.
- Turn on refresh failure emails for every scheduled dataset you own.
- Look at one long-running query for a broken fold, using View Native Query on each step.
The one habit to keep
Read the error before changing anything. Power BI names the missing thing more often than any other tool an analyst uses, and the habit of reading first is what turns a two-hour afternoon into a two-minute fix.
Would you know today if your main report had refreshed with no rows?
Power BI for Analysts is 187 pages that take filter context apart one modifier at a time, so a measure stops being a guess about what Power BI was filtering when it ran.
Power BI for Analysts, $19 →Power Query or Power Pivot explains which layer you are in, and importing a CSV covers the connection basics. The Power BI Kit has the drills.
Open the Power BI Kit →