web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Power Apps - Building Power Apps
Unanswered

Application API Permission slower than Delegated API permissions

(0) ShareShare
ReportReport
Posted on by

I'm currently working on a device management tool using Power Apps, and for that I'm using the Microsoft Graph API through a custom connector. For example, when moving group memberships for a device, the operation is almost instant when using delegated API permissions. However, when using application API permissions, something strange happens.In the Intune admin portal, the group membership updates appear almost instantly, just like with delegated permissions. But in Power Apps, the behavior becomes inconsistent:

- it takes noticeable time until the updated values appear correctly, and

- repeated API calls during that period can produce incorrect or outdated results.

I read that delegated permissions use a user token, which benefits from Azure AD caching behavior, while application permissions do not have a user context — the application itself holds the permissions. The Intune admin portal also uses the administrator’s user token, making its behavior delegated as well.

Essentially, my button in Power Apps executes several API calls like this:

 

GraphAPIConnector_1.PostDeviceMemberGroup(
g.id,
{ '@odata.id': "https://graph.microsoft.com/beta/devices/" & deviceObjectId.id }
)

 

With delegated permissions this works perfectly. With application permissions, the backend updates in Intune are correct, but the Power Apps UI receives outdated or delayed data, which leads to the inconsistencies.


Thanks for sharing your thoughts on this!
I have the same question (0)
  • Kushal_M Profile Picture
    64 on at
    Application API Permission slower than Delegated API permissions
     
    Recommended Architecture for Enterprise Intune Apps
    1. Use application permissions for writes
    2. Use delegated permissions for reads

    You can combine both using:

    • Custom connector → Azure Function
    • Function uses MSAL
    • Two tokens: 1 delegated, 1 application

    This architecture avoids all consistency issues.

    =======================================================================

     Best Fix: Add a 5–15 second consistency delay before reads

    The most reliable solution is: After writing group membership (Add/Remove), wait 5–10 seconds before doing a read back, e.g.:

    Set(varWait, Now());
    While(Now() < DateAdd(varWait, 10, Seconds), true);

    or just: TImer.start

     

    🏷️ Please tag me @Kushal_M, if you still have any queries related to the solution or issue persists.
    ❤️ Please consider giving it a Like, If the approach was useful in other ways.
     Please click Accept as solution if my post helped you solve your issue and help others who will face the similar issue in future.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Coming soon: forum hierarchy changes

In our never-ending quest to improve we are simplifying the forum hierarchy…

Chiara Carbone – Community Spotlight

We are honored to recognize Chiara Carbone as our Community Spotlight for November…

Leaderboard > Power Apps

#1
WarrenBelz Profile Picture

WarrenBelz 651 Most Valuable Professional

#2
Michael E. Gernaey Profile Picture

Michael E. Gernaey 385 Super User 2025 Season 2

#3
MS.Ragavendar Profile Picture

MS.Ragavendar 230 Super User 2025 Season 2

Last 30 days Overall leaderboard