HomeAboutAll PostsVideosSearchRSS

Power BI report stopped refreshing? A gateway and connection troubleshooting playbook

By Denis Molodtsov
Published in Power Platform
October 29, 2026
4 min read
Power BI report stopped refreshing? A gateway and connection troubleshooting playbook
Table of contents

Power BI report stopped refreshing? A gateway and connection troubleshooting playbook

This is a common situation. Someone builds a Power BI report that reads on-premises data through a gateway, it works for months, and then it quietly stops refreshing. The author has moved on or is away, the schedule has switched itself off, the failure emails go to an inbox nobody reads, and the people using the report see old numbers.

The usual first guess is that the gateway is broken. Often it is not. A saved sign-in expired, an account lost access to a source, or the only person who could change the settings is gone. This article is the path from “the report stopped updating” to a report that refreshes again and has an owner who will keep it that way.

Takeaways

Takeaway
✅Read the first failure in Refresh history, not the last one. Later entries only say the schedule was disabled. The first one names the source and the reason.
✅A Fabric admin can reach everything, but not automatically. You add yourself to the workspace, then the gateway, then each connection.
✅Turn on Tenant administration in Manage connections and gateways to see every gateway and connection in the tenant.
✅The Scanner API tells you which reports use a gateway or a connection. The portal does not.
✅The gateway’s Device column tells you which computer it runs on. Check that it is a server and not someone’s desktop.
❌Gateway Admin does not give you access to the connections on that gateway. Each connection has its own users.
❌Personal-mode gateways are invisible to admins. Only their owner can see them.
⚠️Take over wipes the gateway mapping. You remap every source afterward, and every connection has to pass its test, or Refresh now is rejected.
⚠️Expand the share link people actually use before fixing anything. There may be more than one copy of the report.
⚠️Turn the schedule on only after a manual refresh completes. Otherwise it fails and switches itself off again.

How the pieces fit

TermWhat it is
Semantic modelThe dataset behind a report. It holds the queries, data sources and refresh schedule.
Owner (“Configured by”)The account the model refreshes as. Only the owner can change its schedule, mappings and credentials.
On-premises data gatewayA Windows service on some computer in the network that fetches on-premises data for Power BI.
Personal-mode gatewayA gateway installed for one user. Admins cannot see it.
ConnectionA saved target on a gateway (database, DSN, file, SharePoint site) with stored credentials and its own list of users.
Personal cloud connectionCloud credentials stored per user, not on a gateway.
MappingThe link from each data source in a model to a connection (“Maps to”).

A refresh works only when everything lines up: the gateway computer is on, every source maps to a connection, every connection has working credentials, and the owner may use every connection.

Step 1. Read the error

Open the semantic model’s Settings > Refresh and click Show details.

Refresh failed because a data source is missing credentials
Refresh failed because a data source is missing credentials

Then open Refresh history. The first failure after a run of successes holds the real cause.

Refresh history
Refresh history

MessageWhat it usually means
Scheduled refresh is disabled because at least one data source is missing credentialsA source has no mapping or its connection fails its test. Also appears right after a takeover.
InvalidConnectionCredentials with AccessUnauthorized on SharePointThe account saved on the connection can no longer read the site, or its token expired.
Gateway_OfflineThe gateway computer was off or disconnected.
Gateway or datasources not reachableOne or more mapped connections fail their test.
Column 'X' in table 'Y' cannot be found (warning)The source schema changed. The refresh still completes. The report author fixes the model.

Refresh completed with warnings
Refresh completed with warnings

Step 2. Give yourself access

The workspace

Workspaces you are not a member of do not appear anywhere, including search. Open the admin portal at https://app.powerbi.com/admin-portal/workspaces, find the workspace, click … and then Access, and add yourself.

Admin portal workspaces
Admin portal workspaces

Adding yourself to the workspace
Adding yourself to the workspace

Or in PowerShell:

powershell
Connect-PowerBIServiceAccount
Add-PowerBIWorkspaceUser -Scope Organization -Id <workspace-id> -UserPrincipalName you@contoso.com -AccessRight Admin

The gateways

Open Manage connections and gateways at https://app.powerbi.com/groups/me/gateways and switch on Tenant administration. Without it, you only see the gateways you already administer.

Every gateway in the tenant with Tenant administration on
Every gateway in the tenant with Tenant administration on

The round arrows in the Status column are buttons. Click them to check which gateways are online.

Gateway status
Gateway status

To manage one, click … then Manage users on its row and give yourself a role.

Gateway roles
Gateway roles

The connections

This step catches most people. Being a gateway Admin does not let you use the connections other people created on that gateway. When you take over a model, its sources show Add to gateway instead of a dropdown:

Add to gateway instead of Maps to
Add to gateway instead of Maps to

Do not click Add to gateway. It creates duplicate connections and asks for every password again. Go to the Connections tab instead, click … then Manage users on each connection, and add yourself as Owner or User. Press F5 and the dropdowns appear.

Step 3. Find the computer that runs the gateway

Open the gateway in Manage connections and gateways. The Device column is the computer name.

Gateway cluster with its device
Gateway cluster with its device

Once a model is mapped, its settings show the same thing as “Running on”:

Running on a device
Running on a device

For every gateway at once, the DataGateway module works:

powershell
Install-Module DataGateway -Scope CurrentUser
Connect-DataGatewayServiceAccount
foreach ($c in Get-DataGatewayCluster -Scope Organization) {
foreach ($m in $c.MemberGateways) {
'{0,-30} {1}' -f $c.Name, ($m.Annotation | ConvertFrom-Json).gatewayMachine
}
}

Then confirm in Intune or Entra ID who that computer belongs to. Gateways often end up on the report author’s desktop. Power BI shows them as online and healthy until the day the desktop is switched off, reimaged or replaced.

Step 4. Find what uses a gateway or a connection

The portal shows connections but not which reports use them. The admin Scanner API does. It returns every model in a set of workspaces with its data sources and their gateway IDs:

powershell
$ws = Invoke-PowerBIRestMethod -Url 'admin/workspaces/modified' -Method Get | ConvertFrom-Json | ForEach-Object { $_ }
$body = @{ workspaces = @($ws[0..99].id) } | ConvertTo-Json
$scan = Invoke-PowerBIRestMethod -Url 'admin/workspaces/getInfo?datasourceDetails=True' -Method Post -Body $body | ConvertFrom-Json
# Poll admin/workspaces/scanStatus/<scan id> until it says Succeeded, then read the result:
$res = Invoke-PowerBIRestMethod -Url "admin/workspaces/scanResult/$($scan.id)" -Method Get | ConvertFrom-Json
$res.datasourceInstances | Where-Object gatewayId -eq '<gateway-id>'

Join datasourceInstances back to each dataset’s datasourceUsages to get the report names and owners. Scan in batches of 100 workspaces.

Two things to look for in the result:

  • Connections on a gateway that no model uses are leftovers. They can be cleaned up later.
  • A gateway ID that no admin page shows, with every model on it owned by the same person, is a personal-mode gateway. That is the only way an admin can see one.

The ForEach-Object { $_ } matters on Windows PowerShell 5.1. There, ConvertFrom-Json returns a top-level JSON array as one object, and your loop runs once.

Step 5. Find when it last refreshed successfully

For one model, the Refresh section shows the last successful refresh and the next one.

Last refresh succeeded
Last refresh succeeded

For every model on a Premium or Fabric capacity, one admin call returns the last refresh of each:

powershell
$r = Invoke-PowerBIRestMethod -Url 'admin/capacities/refreshables?$top=1000&$expand=group' -Method Get | ConvertFrom-Json
$r.value | Select-Object name, configuredBy, @{ n = 'Status'; e = { $_.lastRefresh.status } }, @{ n = 'Ended'; e = { $_.lastRefresh.endTime } }

To see who did what in the last 30 days (refreshes, takeovers, credential changes, exports), read the activity log one day at a time:

powershell
Get-PowerBIActivityEvent -StartDateTime '2026-10-27T00:00:00' -EndDateTime '2026-10-27T23:59:59' |
ConvertFrom-Json | ForEach-Object { $_ } |
Where-Object Activity -match 'TakeOver|Refresh|Gateway|Datasource' |
Select-Object CreationTime, UserId, Activity, ItemName

The activity log also shows how many people open each report. If there are two copies of the same report, check both before deciding one of them does not matter.

Step 6. Take over the semantic model

Owner and the Take over button
Owner and the Take over button

Before you click Take over, check how the model connects. This one used its owner’s personal cloud connection, which a takeover drops:

A model on a personal cloud connection
A model on a personal cloud connection

After the takeover, the gateway mapping is empty:

After the takeover, no gateway selected
After the takeover, no gateway selected

Click the arrow next to the gateway, pick a connection in every Maps to dropdown, select the gateway’s radio button, and click Apply. Leave the Cloud connections row empty when the same source is already mapped through the gateway.

Every source mapped to a connection
Every source mapped to a connection

Step 7. Fix the credentials

The model’s Data source credentials section shows which connections fail their test:

Two connections failing their test
Two connections failing their test

To fix one, open the connection’s Settings, click Edit credentials, sign in, and click Save:

Edit credentials on a SharePoint connection
Edit credentials on a SharePoint connection

For a SharePoint AccessUnauthorized, check the account on the site with Check Permissions. Check the list too, because lists can have their own permissions:

Check Permissions showing None
Check Permissions showing None

Watch for files in a person’s home folder, such as an Excel lookup table. Their connection usually holds that person’s Windows password, which breaks when the password changes. After a takeover every mapped connection has to pass its test, so one forgotten file can block the whole refresh. The real fix is to move the file to SharePoint and change the query in Power BI Desktop.

Step 8. Turn the schedule back on

Run Refresh now first. Only when it completes, turn the schedule on, check the time zone, and replace departed people in the notification contacts.

Refresh schedule on
Refresh schedule on

Handing it over

The fix leaves the model running under the admin’s account. To move it to someone who will stay:

  1. Give them access to the data, for example the SharePoint site.
  2. Make them Admin on the gateway and Owner on each connection the model uses.
  3. They click Take over, map the sources, and click Apply.
  4. They re-sign the SharePoint connection with their own account.
  5. They run Refresh now and turn the schedule on.

Keeping it healthy

  • Before fixing anything, open the link the users actually use. Copies of the same report in different workspaces are common, and the one people use is not always the one you find first.
  • Run the Scanner API early. It shows personal gateways, leftover connections and every report that depends on a gateway in one list.
  • Treat any gateway on a desktop as temporary. Move it to a server with at least two admins, sign connections with a service account, and give each model a named owner who reads the failure emails.
Found this useful? Follow me on LinkedIn to see my new posts.
Follow on LinkedIn

Tags

Power BIGatewayPowerShellFabric

Share

Previous Article
SharePoint HTML pages, part 2, a comprehensive list of experiments after GA
Denis Molodtsov

Denis Molodtsov

Microsoft 365 Architect

Microsoft Most Valuable Professional (MVP)

Related Posts

Beautiful Power BI Backgrounds
Beautiful Power BI Backgrounds
April 01, 2024
1 min

Quick Links

AboutAll PostsRSS

Social Media