Power Apps Delegation Warning – How to Avoid Incomplete Data

Delegation is a critical concept in Power Apps development.

If you get delegation warnings you are at risk of presenting incomplete data to users — a major problem in any application relying on accurate data.

This article will explain what delegation is, how it works, why it matters, and how to avoid common mistakes that lead to non-delegable queries.

What Is Delegation?

Delegation in Power Apps refers to how data operations (like Filter, Search, or Sort) are processed. A query can be processed either:

  • On the data source (server-side) — delegable
  • In Power Apps memory (client-side) — non-delegable

Delegable queries are preferred because they return complete and accurate data, especially with large datasets. Non-delegable queries may only return a limited number of records and can lead to missing data in your app.

Important: If your query is non-delegable and your dataset has more than 500 records, Power Apps may return incomplete results.

Delegable vs. Non-Delegable Queries

Example: Delegable Query with SharePoint

A SharePoint list called Car Service contains over 2,000 records. Using a gallery in Power Apps directly connected to this list, the app can display all records — by scrolling through them — thanks to delegation.

Example: Non-Delegable Search Function

Changing the gallery’s Items property to use the Search() function like this:

Search(CarService, "car", "VehicleType")

causes delegation warnings. Only the first 500 records are returned, and filtering happens in Power Apps memory.

How to Detect Delegation Warnings

Power Apps shows yellow warning triangles with an exclamation mark when delegation is not supported for a function or data source. Hovering over the warning provides an explanation.

Tip: Always check for delegation warnings when working with large datasets.

Delegable Alternatives

Use Filter() Instead of Search()

Instead of using:

Search(CarService, "Patrick Jones", "Customer")

Use:

Filter(CarService, Customer = "Patrick Jones")

This change allows the query to be delegated and returns complete results, even when “Patrick Jones” appears at the start and end of the list.

Be Cautious With Operators

Even Filter() becomes non-delegable if you use certain operators like <> (not equals).

Delegation Limits and Settings

By default, Power Apps retrieves only 500 records from non-delegable queries. This can be increased up to 2,000:

  1. Go to Settings
  2. Select General
  3. Adjust the Data row limit

Testing for Delegation

To check if your query is delegable:

  1. Set the Data row limit to 1
  2. Run your app
  3. If only one record is returned but you expect more — the query is non-delegable
  4. If all expected records are still returned — the query is delegable

Note: Not all delegation issues produce warnings. Always test your queries with the row limit method.

Delegation Across Data Sources

Different data sources support different functions for delegation. For example:

  • SharePoint: Search() is non-delegable
  • Dataverse: Search() is delegable

Both may support Filter(), but with different capabilities. Always check Microsoft’s Delegation List by Data Source documentation to confirm what functions are delegable to the data source you are working with.

Final Recommendations

  • ✅ Always use delegable functions when working with large datasets
  • ⚠️ Watch for (and fix) delegation warnings
  • 📏 Use the data row limit setting as a delegation test
  • 📚 Consult Microsoft’s delegation documentation per data source

Comments

Leave a Comment

Your email address will not be published. Required fields are marked *