Courseiva
Demonstrate the capabilities of Power AppshardMultiple ChoiceObjective-mapped

Power Apps Delegation: Why Non-Delegable Filters Cause Missing Records

Exhibit

{
  "name": "Contoso Inventory App",
  "type": "Canvas",
  "dataSources": [
    {
      "name": "Inventory",
      "type": "Microsoft Dataverse",
      "entity": "contoso_inventory",
      "filter": "status eq 'Active'"
    }
  ],
  "components": [
    {
      "name": "Gallery1",
      "items": "Filter(Inventory, Stock < 10)",
      "fields": ["ProductName", "Stock"]
    }
  ]
}

Refer to the exhibit. The app uses a Dataverse entity 'contoso_inventory'. Users report that the gallery does not show items with Stock < 10. What is the most likely cause?

Quick Answer

The reason the gallery is missing low-stock items traces back to filter order, not to a delegation limitation: the data source filter 'status eq Active' is applied to the Dataverse query before the gallery's own Filter function ever runs, so any record whose status isn't Active is excluded from the result set the gallery receives, regardless of its Stock value. If those low-stock items happen to carry a different status, such as Inactive, they're removed at the source and the gallery's Stock less-than-10 logic never gets a chance to evaluate them. This distinguishes the issue from a genuine delegation problem: Dataverse fully supports delegating numeric comparisons like less-than on a column such as Stock, so the Filter function itself isn't being silently truncated, and the 500-record delegation limit wouldn't systematically exclude every low-stock item unless they all happened to sit beyond that boundary, which isn't a realistic default explanation. The general principle is to trace a query's filters in the order they're actually applied, since a data source-level filter narrows the data before anything downstream ever sees it. When expected records vanish from a gallery, check every upstream filter condition before assuming a delegation warning or record limit is to blame.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

The data source filter 'status eq Active' excludes records with Stock < 10

The data source filter 'status eq Active' is applied to the datasource before the gallery's Filter function. If records with Stock < 10 have a status other than 'Active', they are excluded by the datasource filter and never reach the gallery, causing the issue. Option B is false because Dataverse supports filter delegation for many operations. Option C is the delegation limit of 500 records would limit the number of items shown, but it would not exclude all items with Stock < 10 unless they are all beyond the limit, which is unlikely. Option D is false because Dataverse supports delegation for numeric comparisons like '<' on the Stock column, so the Filter function is delegable and should apply to all records.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • The data source filter 'status eq Active' excludes records with Stock < 10

    Why this is correct

    Correct. The data source filter 'status eq Active' is applied at the data source level. If items with Stock < 10 have a different status (e.g., 'Inactive'), they are excluded before the gallery sees them.

  • Dataverse does not support Filter delegation

    Why it's wrong here

    Incorrect. Dataverse supports delegation for many filter operators, including numeric comparisons on indexed columns.

  • The app has a delegation limit of 500 records

    Why it's wrong here

    Incorrect. The delegation limit of 500 records would only limit the number of items, not exclude all items with Stock < 10.

  • The Filter function in Gallery1 is non-delegable and may not apply to all records

    Why it's wrong here

    Incorrect. Dataverse does support delegation for numeric comparisons like '<' on the Stock column, so the Filter function is delegable. The issue is not non-delegability.

About these practice questions

Courseiva writes every PL-900 question from scratch — 904 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

Same concept, more angles

1 more way this is tested on PL-900

These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.

Variation 1. A Power App uses a Timer control to refresh data every 5 minutes. The app experiences performance degradation after running for several hours. What is the most likely cause?

medium
  • A.The Timer control has an internal memory leak
  • B.The timer interval is too short, causing excessive network calls
  • C.The app is not using a CDN for static resources
  • D.The data source is not delegating queries, causing the app to load all data each time

Why D: If the data source does not support delegation, Power Apps loads all rows into memory each time the Timer control triggers a refresh. Over several hours, the accumulation of data in memory causes performance degradation. Option A is incorrect: while a Timer control could contribute to memory usage if not properly disposed, it does not inherently have a memory leak. Option B is incorrect: a 5-minute interval is not excessively short for typical data refresh scenarios. Option C is incorrect: CDNs are used for static content delivery, not for resolving memory buildup from non-delegated queries.

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This PL-900 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the PL-900 exam.