LowCodeStacks™
Sign in

Power Apps offline mode: set up a canvas app that works without a connection

Turn on offline-first for a Dataverse canvas app, build the offline profile that keeps sync fast, and know the hard limits — no SharePoint, no flows, no browsers — before you promise offline to anyone.

Power AppsFix a problem4 min read

Checked against Microsoft Learn · 5 sourcesPosted by the Maker DeskHow we write guides

Field teams don't have Wi-Fi in basements, warehouses or vans — and a canvas app that spins forever offline burns trust fast. Power Apps' offline-first capability handles the hard parts — local storage, sync, conflict detection — but only inside clear boundaries.

The hard limits (check these first)

Microsoft documents these as unsupported in offline-enabled canvas apps — design around them up front:

  • Dataverse only. Non-Dataverse connectors — SharePoint included — don't work offline. If the data lives in SharePoint lists or Excel, move it to Dataverse first.
  • Native mobile players only — iOS, Android, Windows. A canvas app in a web browser can't run offline, even on a phone.
  • Standalone canvas apps only — not embedded canvas apps, custom pages or Teams apps.
  • No Power Automate flows offline, and no virtual or elastic tables.

For small non-Dataverse cases there's the old fallback: SaveData/LoadData collections — but they're memory-bound (roughly 30–70 MB in practice, per Microsoft), don't resolve conflicts, and are a mechanism you wire yourself.

Turn it on

  1. In Power Apps Studio, open the app and go to Settings > General.
  2. Turn on Can be used offline. If the option is missing, the app isn't in a solution yet — add it to one.
  3. Pick an offline profile: Auto-generated to start, or a custom profile (next section).
  4. Save and publish. A page based on the Offline template is inserted automatically, with a globe icon wired to Connection.Sync that shows users the sync state.

Once enabled, the app runs offline-first always: it reads and writes the local copy even when online, and syncs in the background — which is also why performance stops depending on signal strength.

Build a real offline profile

The auto-generated profile downloads every table the app touches, with no filters — Microsoft's own docs call it a starting point to validate with, not a destination. The custom profile is where offline apps live or die:

  1. In the app's offline settings choose New profile with current app data (or create one in the admin center under Mobile configuration).
  2. Add only the tables the app needs offline, and for each one set a row filter: the user's rows, team rows, related rows only, or a custom expression up to three levels deep. Avoid business-unit-wide filters unless the table is tiny reference data.
  3. Select relationships so related rows ride along, and set each table's sync interval — a product catalogue doesn't need to sync every few minutes.
  4. Publish the profile, then publish the app again. Each table can link to at most 15 others through filters and relationships — transitively counted — or the profile won't publish.

Do

  • Set gallery items directly to filtered Dataverse data; bulk-Patch a collection of edits.
  • Use views with the related columns you need instead of per-row lookups.

Don't

  • Don't load whole tables into collections and filter in memory — it defeats the sync design.
  • Don't add users under "Users with offline access" for a canvas profile — that area applies to model-driven apps.

Verify it on a real device

Nothing here replaces a device test: install Power Apps Mobile, open the app once online to pull the first download, then flip to airplane mode and work the core journeys — create, edit, reopen, then reconnect and confirm the changes land in Dataverse. Microsoft's Monitor tool can attach to a mobile session for diagnosing sync behaviour. State what was tested, on what device, in your rollout notes — "offline works" claims belong to whoever actually ran it.

Sources

Did this fix it?

Comments

No comments yet. Share what worked for you.

Sign in to comment. Comments show under a display name you choose, never your email.