Skip to main content

Fixed: Power Apps Doesn't Show Changes Other People Made

· 7 min read
Jagdish Kumawat
Founder @ Dewiride

A manager approved an employee's response, but the employee's screen kept saying Waiting for review, even after she opened it again. Microsoft documents why: a running canvas app doesn't pick up changes other people make. The fix is to call Refresh when a screen opens, and to give people a Refresh button for when they stay on a screen.

What I Was Doing​

I was testing the Career Development Plan app's new Review screen with two people at once (Part 8):

  • Olivia, an employee, used the published app in her own browser. Her My plan screen lists her competencies with a status badge each.
  • Her manager, in another browser, approved her Sales strategy response on the Review screen.

What I Expected​

Olivia goes back to the Home screen and opens My plan again. Its OnVisible runs its queries again (How to Run a Formula When a Screen Opens), and Sales strategy shows Approved.

That's what happened in Part 6 after the app's own Patch: the new status showed straight away.

What I Got​

Sales strategy still showed Waiting for review:

Olivia's My plan screen with Leadership and Stakeholder management Not started, and Sales strategy still showing a yellow Waiting for review badge after her manager approved it

I opened the screen again after 12 seconds, and once more about six minutes after the approval. It still said Waiting for review each time. Yet opening the response itself showed the decision:

Olivia's My response screen for Sales strategy with a green Approved badge, reading Your manager approved this on Wednesday, October 28, 2026. Approved responses can't be changed.

What I Checked​

  • Was the item approved? Yes. The manager's screen and Olivia's response screen both showed Approved, so the change was in SharePoint.
  • What was different from Part 6? In Part 6, the change came from the app's own Patch. This time, someone else made it, in another session.

The two screens use different queries: My plan filters Olivia's responses, and the response screen looks up one item. Microsoft doesn't document why one returned the new status and the other didn't, so I went by what Microsoft does document.

Why It Happens​

Microsoft documents this in three places:

  • Refresh function: Refresh gets a fresh copy of a data source, so you see changes other users made. Microsoft's example has another device change a record, and the app doesn't show it until Refresh runs (Refresh function).
  • Understand data sources: if data changes outside the app, the app doesn't detect it while running. Use Refresh to reload it (Troubleshoot common data source issues).
  • Understand canvas-app forms: the data source is refreshed when the user opens the app. For refreshing without closing the app, Microsoft adds a Refresh button (Refresh data).

So the app's own changes show at once, but other people's changes aren't guaranteed to, until the app refreshes its copy.

The Fix​

Two changes, one for each way people use a screen (How to Refresh Data with the Refresh Function):

  1. Refresh when a screen opens. Each screen's loading formula now starts by refreshing the lists it reads.
  2. A Refresh button in the header, for someone who stays on a screen, such as a manager waiting for responses.

Both run the same formula. It lives in the button's OnSelect, and the screen's OnVisible selects the button (How to Add a Refresh Button to a Screen). For My plan:

btnRefreshMPS → OnSelect
UpdateContext({locIsLoading: true});
Refresh(RoleCompetencies);
Refresh(CompetencyResponses);
Concurrent(
UpdateContext(
{
locMyPlan: Sort(
Filter(
RoleCompetencies,
JobTitle = MyJobTitle && IsActive
),
Competency
)
}
),
UpdateContext(
{
locMyResponses: Filter(
CompetencyResponses,
EmployeeId = MyProfile.id
)
}
)
);
UpdateContext({locIsLoading: false})
My Plan Screen → OnVisible
Select(btnRefreshMPS)

The other screens that show SharePoint data got the same change, each with its own formula.

After the Fix​

I tested the exact path that failed. Olivia sent another response and went back to the Home screen. Her manager declined it. Seventeen seconds later, Olivia opened My plan, with no reload and no button, and it showed the decision:

Olivia's My plan screen with a Refresh button in the header, Leadership and Sales strategy Approved, and Stakeholder management showing a red Declined badge

The header button works for the other direction too. The manager's My team screen was open when Olivia sent a response, and it showed no badge:

The My team screen with a Refresh button in the header, and Olivia Bennett, Head of Sales, with no badge

After Refresh, the badge appeared:

The same My team screen after selecting Refresh, with a yellow Waiting for review badge on Olivia's row

Common Mistakes​

MistakeWhat happensDo this instead
Testing with one account onlyYour own changes always show, so the problem stays hiddenTest with two people in two browsers
Calling Refresh without reloading the variablesScreens that use variables still show their old copyRefresh, then run the screen's queries again
Copying the loading formula into the buttonTwo copies to keep in stepKeep it in the button, and select the button from OnVisible

Troubleshooting​

SymptomLikely causeFix
One screen shows the change, another doesn'tEach screen's queries are separateRefresh on every screen that shows the data
The button does nothingIts OnSelect only calls Refresh, but the screen shows variablesLoad the variables again after Refresh
Old data right after publishing the fixThe user still has the old versionFixed: Users Still See the Old Version After You Publish

FAQ​

Is refreshing on every screen open slow?​

Each screen runs the same delegable queries as before, after the Refresh. I didn't notice a slowdown while testing, but I didn't time it either. To measure it on your own lists, watch the data calls in Live monitor (How to Use Live Monitor).

Do I need Refresh after my own Patch?​

Not to see your own change: in Part 6, the new status showed straight away. You need it for changes other people make.

Why not refresh on a timer?​

People would see the screen change while they read it. Microsoft's documented pattern is a Refresh button, and refreshing when a screen opens covers the rest.

Conclusion​

A canvas app shows its own changes at once, but not other people's. Microsoft's answer is the Refresh function. Here it runs every time a screen opens, and a Refresh button in the header covers people who stay on a screen.

Additional Resources​

Stay Updated

Subscribe to our newsletter for the latest tutorials, tech insights, and developer news.

By subscribing, you agree to our privacy policy. Unsubscribe at any time.