πŸ”’ Guided

Pre-launch preview. Authorised access only.

Incorrect code

Guided by A Guide to Cloud
Explore AB-900 AI-901
Guided PL-400 Domain 3
Domain 3 β€” Module 2 of 2 100%
10 of 26 overall

PL-400 Study Guide

Domain 1: Create a Technical Design

  • Solution Architecture: What Goes Where Free
  • Security by Design: Auth, Roles & DLP Free
  • Designing UX Components: Canvas, PCF & Client Scripts Free
  • Designing Platform Extensions: Connectors, Plug-ins & APIs Free
  • Integration & Automation Blueprints Free

Domain 2: Build Power Platform Solutions

  • Environment Setup & Security Troubleshooting
  • Solutions & Layers: ALM Foundations
  • CI/CD Pipelines for Power Platform

Domain 3: Implement Power Apps Improvements

  • Advanced Power Fx & Canvas Components
  • Troubleshoot & Optimise Apps

Domain 4: Extend the User Experience

  • Client Scripting: Form Events & the Client API
  • Commands, Buttons & Custom Page Navigation
  • PCF Components: Build & Lifecycle
  • PCF Components: Package, Deploy & Advanced Features

Domain 5: Extend the Platform

  • The Plug-in Pipeline: How Dataverse Processes Events Free
  • Writing Plug-ins: Business Logic, Service & Registration
  • Custom APIs & Business Events
  • Custom Connectors: OpenAPI & Authentication
  • Custom Connectors: Azure, Policies & Code
  • Dataverse APIs: Web API & Organisation Service
  • Azure Functions for Power Platform
  • Cloud Flows: Dataverse Triggers & Expressions
  • Cloud Flows: Security, Errors & Child Flows

Domain 6: Develop Integrations

  • Publishing Dataverse Events
  • Service Endpoints: Webhooks, Service Bus & Event Hub
  • Data Sync: Change Tracking, Alternate Keys & Upsert

PL-400 Study Guide

Domain 1: Create a Technical Design

  • Solution Architecture: What Goes Where Free
  • Security by Design: Auth, Roles & DLP Free
  • Designing UX Components: Canvas, PCF & Client Scripts Free
  • Designing Platform Extensions: Connectors, Plug-ins & APIs Free
  • Integration & Automation Blueprints Free

Domain 2: Build Power Platform Solutions

  • Environment Setup & Security Troubleshooting
  • Solutions & Layers: ALM Foundations
  • CI/CD Pipelines for Power Platform

Domain 3: Implement Power Apps Improvements

  • Advanced Power Fx & Canvas Components
  • Troubleshoot & Optimise Apps

Domain 4: Extend the User Experience

  • Client Scripting: Form Events & the Client API
  • Commands, Buttons & Custom Page Navigation
  • PCF Components: Build & Lifecycle
  • PCF Components: Package, Deploy & Advanced Features

Domain 5: Extend the Platform

  • The Plug-in Pipeline: How Dataverse Processes Events Free
  • Writing Plug-ins: Business Logic, Service & Registration
  • Custom APIs & Business Events
  • Custom Connectors: OpenAPI & Authentication
  • Custom Connectors: Azure, Policies & Code
  • Dataverse APIs: Web API & Organisation Service
  • Azure Functions for Power Platform
  • Cloud Flows: Dataverse Triggers & Expressions
  • Cloud Flows: Security, Errors & Child Flows

Domain 6: Develop Integrations

  • Publishing Dataverse Events
  • Service Endpoints: Webhooks, Service Bus & Event Hub
  • Data Sync: Change Tracking, Alternate Keys & Upsert
Domain 3: Implement Power Apps Improvements Premium ⏱ ~12 min read

Troubleshoot & Optimise Apps

When apps misbehave or run slowly, you need the right tools. Learn to diagnose issues with Monitor and browser dev tools, and optimise performance with delegation-aware queries and form tuning.

Finding and fixing problems

β˜• Simple explanation

Think of debugging like being a doctor.

A patient says β€œmy arm hurts.” You do not guess β€” you examine, run tests, and look at X-rays. The Monitor tool is your X-ray machine for Power Apps. It shows you exactly what is happening behind the scenes: every data call, every formula evaluation, every error.

Performance optimisation is like a health check-up. The app works, but is it efficient? Is it making unnecessary trips to the server? Is it loading 10,000 records when the user only needs 10? Delegation is the key concept β€” it determines whether your query runs on the server (fast) or pulls everything to the client and filters locally (slow).

Power Apps debugging uses two primary tools: the Monitor (built into Power Apps Studio and available for model-driven apps) which captures network requests, formula evaluations, and errors in real time; and browser developer tools (F12) which provide network traces, console logs, and JavaScript debugging for client-side issues.

Performance optimisation spans two app types. Canvas apps must be delegation-aware (server-side query processing), minimise data calls, use Concurrent() for parallel loading, and avoid complex nested galleries. Model-driven apps optimise through form design (removing unnecessary tabs/sections), view configuration (limiting columns and filters), and JavaScript efficiency (minimising Web API calls in form events).

Debugging with Monitor

The Monitor tool captures everything your app does behind the scenes.

What Monitor ShowsWhy It Matters
Network requestsSee every call to Dataverse, connectors, and APIs β€” including timing and payload size
Formula evaluationsWhich formulas are running, how long they take, and what they return
Errors and warningsDetailed error messages that may not appear in the app UI
Delegation warningsWhich queries are running client-side instead of server-side
User actionsTrack what the user clicked and the resulting data flow

Common debugging patterns

  1. App returns wrong data β†’ Check Monitor for the network request. Is the filter correct? Is the query delegated?
  2. App is slow β†’ Sort Monitor events by duration. Find the slowest network requests.
  3. Intermittent errors β†’ Run Monitor with β€œJoin session” to capture a user’s live session remotely.
  4. Connector failures β†’ Monitor shows the raw HTTP response including error codes and messages.
πŸ’‘ Scenario: Kai debugs a slow shipment app

Kai’s shipment tracking app takes 15 seconds to load the main screen. He opens Monitor and sees:

  1. Three sequential Dataverse queries β€” each takes 3-4 seconds. They load Shipments, Drivers, and Vehicles.
  2. A delegation warning on the Shipments query β€” the filter uses a Left() function, which is not delegable. Dataverse returns only the first 500 records, then the app filters 10,000 records locally.
  3. A large payload β€” the Drivers query returns all 50 columns when the screen only displays Name and Phone.

Fixes:

  • Replace Left() filter with a delegable StartsWith() function
  • Use Concurrent() to load all three queries in parallel
  • Add ShowColumns() to the Drivers query to fetch only Name and Phone
  • Result: load time drops from 15 seconds to 3 seconds

Delegation: the performance killer

Delegation means the data source (Dataverse, SQL, SharePoint) processes the query server-side. If a formula is not delegable, Power Apps downloads all records and filters locally β€” with a cap (default 500, max 2,000).

Memorise which functions delegate and which do not β€” the exam tests this
FunctionDelegable to Dataverse?Alternative
Filter with =, <>, <, >YesN/A β€” use these
StartsWithYesN/A β€” use this for text matching
Search (in view)YesUse Dataverse search for best results
Left, Right, MidYes (Dataverse)Note: delegable to Dataverse but NOT to SharePoint or SQL β€” check per data source
LenYes (Dataverse)Delegable to Dataverse; not all sources support it
in operator (collection)NoUse AddColumns + LookUp pattern instead
IsBlank (on lookup)NoFilter on the lookup column directly
Sort with formulaPartial β€” simple column sorts are delegableAdd a sort column in Dataverse

Pre-loading data

For data that does not change during a session, load it upfront:

  • Named formulas β€” define in App.Formulas for automatic caching
  • Concurrent() β€” load multiple data sources in parallel on App.OnStart or screen OnVisible
  • Collections β€” ClearCollect(LocalCache, Filter(BigTable, ...)) to create a local copy for non-delegable operations
πŸ’‘ Exam tip: The delegation warning trap

The exam often presents a scenario where an app works correctly in testing (small dataset, under 500 records) but fails in production (large dataset, 10,000+ records). The cause: a non-delegable formula that silently drops records beyond the delegation limit.

The fix is always: use delegable functions, increase the delegation limit (Settings β†’ max 2,000), or pre-filter with a delegable query before applying non-delegable transformations.

Model-driven app optimisation

Form performance

OptimisationImpact
Remove unused tabs and sectionsFewer components to render
Lazy-load tabs (expand by default = off)Tabs load only when clicked
Minimise JavaScript on form loadReduce OnLoad execution time
Batch Web API callsOne request instead of multiple
Use business rules instead of scripts for simple logicFaster, no JavaScript overhead

View performance

  • Limit columns β€” show only what users need (each column is a query join)
  • Add appropriate filters β€” avoid β€œall records” views on large tables
  • Use personal views for individual needs instead of modifying system views
Question

What is delegation in Power Apps?

Click or press Enter to reveal answer

Answer

Delegation means the data source (Dataverse, SQL) processes the query server-side and returns only the matching results. Non-delegable formulas download all records (capped at 500-2000) and filter locally. With large datasets, non-delegable queries silently return incomplete results.

Click to flip back

Question

How does Concurrent() improve canvas app performance?

Click or press Enter to reveal answer

Answer

Concurrent() runs multiple data loading operations in parallel instead of sequentially. If three queries each take 3 seconds, sequential loading takes 9 seconds but Concurrent() takes ~3 seconds (they run simultaneously). Use it for independent data sources on OnVisible or OnStart.

Click to flip back

Question

What does Monitor show that browser dev tools do not?

Click or press Enter to reveal answer

Answer

Monitor provides Power Apps-specific context: formula evaluations, delegation warnings, connector call details, and Power Fx errors. Browser dev tools show raw network traffic and JavaScript errors but do not understand Power Fx formulas or delegation. Use both together for complete debugging.

Click to flip back

Knowledge Check

A canvas app displays a gallery of Customer records filtered by the first three characters of the customer name. The app works correctly with 200 test records but shows incomplete results in production with 15,000 records. What is the most likely cause?

🎬 Video coming soon

Next up: Client Scripting β€” writing JavaScript for model-driven app form events, the Client API, and Dataverse Web API calls.

← Previous

Advanced Power Fx & Canvas Components

Next β†’

Client Scripting: Form Events & the Client API

Guided

I learn, I simplify, I share.

A Guide to Cloud YouTube Feedback

© 2026 Sutheesh. All rights reserved.

Guided is an independent study resource and is not affiliated with, endorsed by, or officially connected to Microsoft. Microsoft, Azure, and related trademarks are property of Microsoft Corporation. Always verify information against Microsoft Learn.