A project tracker I inherited showed “last week’s tasks” in a gallery, and it looked right for months. Then the list passed 2,000 items and tasks started disappearing. Nobody had changed anything. The yellow triangle on the gallery had been warning about exactly this from day one: Power Apps was only looking at the first few hundred items.
In this tutorial, I’ll explain what delegation warnings mean, which SharePoint functions delegate, and how to rewrite the three formulas I see most often so the warning goes away for real, not just from view.
Quick answer: A delegation warning means SharePoint can’t run part of your formula, so Power Apps downloads only the first 500 items (up to 2,000) and filters those. Results on bigger lists are incomplete. Fix it by rewriting the formula with delegable pieces: use = on text columns, date ranges instead of WeekNum or Month, StartsWith instead of Search, and = with || instead of <> on choice columns. Loading the list into a collection hides the warning but doesn’t fix the limit.
What delegation means
With delegation, Power Apps sends your filter to the data source, and SharePoint returns only the matching items. When part of a formula can’t be delegated, Power Apps downloads a limited number of items instead and does the work itself. The limit is the Data row limit: 500 by default, and up to 2,000 in Settings > General.
You’ll see a yellow triangle on the control and a blue wavy underline under the part of the formula that can’t be delegated. It’s a warning, not an error, so the app still runs. On a small list, you won’t notice anything. On a large one, some items are silently missing.
A good habit: while you build, set the Data row limit to 1. Any formula that isn’t delegated then returns at most one item, so problems are obvious right away. Set it back before publishing.
What SharePoint can delegate
| Operation | Delegable to SharePoint? |
|---|---|
| Filter, LookUp | Yes |
= | Yes, for text, number, date, Yes/No and choice or lookup values |
<, <=, >, >=, <> | Yes for numbers and dates; no for text |
And (&&), Or (||) | Yes |
Not (!) | No |
| StartsWith | Yes, on text columns |
Search, in | No |
| Sort, SortByColumns | Yes, except on choice, lookup and person columns |
| IsBlank(column) | No; use column = Blank() instead |
| ID column | Only = |
| Person columns | Only the Email and DisplayName fields |
Functions applied to a column, such as WeekNum, Month, Year, Lower or Len, aren’t delegable. Functions that return one value for the whole formula, such as Today(), are fine, because Power Apps calculates them first and sends the result.
System fields such as Identifier, IsFolder, Thumbnail, Link, Path, FullPath, Name, FilenameWithExtension, ContentType, IsCheckedOut, VersionNumber and ModerationStatus can’t be used in delegated filters.
Example 1: Date functions such as WeekNum
This gallery shows tasks from before this week:
Filter('Tracking Project Tasks', WeekNum(EndDate) < WeekNum(Today()))

WeekNum on the EndDate column can’t be sent to SharePoint, so Power Apps shows a warning. The formula also has a second bug: across New Year, the last week of December is week 53, which isn’t less than week 2, so old tasks vanish in January.
The wrong fix: a collection
A common suggestion is to load the list into a collection with ClearCollect(col_Project, 'Tracking Project Tasks') in App.OnStart and filter the collection instead. The warning disappears, but ClearCollect isn’t delegable either, so the collection only holds the first 500 or 2,000 items. The problem is still there; you just can’t see it anymore.
The right fix: a date range
Date comparisons are delegable. Work out the week boundaries once, as named formulas in App > Formulas:
StartOfThisWeek = DateAdd(Today(), 1 - Weekday(Today()), TimeUnit.Days);
StartOfLastWeek = DateAdd(StartOfThisWeek, -7, TimeUnit.Days);
Then set the gallery’s Items to one of these:
// Everything before this week
Filter('Tracking Project Tasks', EndDate < StartOfThisWeek)
// Only last week
Filter('Tracking Project Tasks', EndDate >= StartOfLastWeek, EndDate < StartOfThisWeek)
On Sunday, September 27, 2026, StartOfThisWeek is September 27 and last week runs from September 20 to 26. SharePoint does the filtering, the warning is gone, and the year boundary works. The same approach replaces Month() and Year(): filter from the first day of the month to the first day of the next month.
Example 2: Search
Search on a SharePoint list always shows a warning, because SharePoint can’t run it:

The delegable alternative is StartsWith, connected to a search box:
Filter('Customer Contacts list', StartsWith(FirstName, txtSearch.Text))

It isn’t identical: StartsWith matches the beginning of one column (“Mar” finds Mark and Markku), while Search finds text anywhere in several columns. For most name and title searches, a prefix match is what people expect. To search two columns, combine them: StartsWith(FirstName, txtSearch.Text) || StartsWith(LastName, txtSearch.Text). An empty search box returns everything.
Example 3: Not equal on a choice column
This formula hides low-priority tasks:
Filter('Project Tasks Details', Priority.Value <> "Low")

<> isn’t delegable on text or choice values. List the values you want instead, with = and Or, which are delegable:
Filter('Project Tasks Details', Priority.Value = "High" || Priority.Value = "Medium")

Two things to keep in mind: items with no priority drop out, and you need to update the formula if someone adds a new choice. On number and date columns, <> is delegable, so there’s no need for a workaround there.
Other fixes that help
- Blank values. Use
Filter(List, DueDate = Blank())instead ofIsBlank(DueDate). - Filter first, then transform. Put the delegable Filter innermost, and apply AddColumns, Sort or Search on its much smaller result.
- Index the column. In SharePoint, index the columns you filter on so large lists respond quickly and stay under the list view threshold.
- Use a helper column. If you often filter on a calculated value, such as the year, store it in its own number column when the item is saved.
- Raising the row limit isn’t a fix. 2,000 only delays the problem and slows the app.
For more on filtering large lists, see how to filter a SharePoint list in Power Apps and Power Apps gallery filter examples.
These Power Apps tutorials help with large lists:
- Filter SharePoint List Items in Power Apps [5 Various Examples]
- Power Apps Gallery Filter: Search, Dropdown, Date & More
- How to use PowerApps search() function SharePoint list?
- Filter Data By Current User in Power Apps [4 Ways]
- Power Apps Named Formulas [5 Easy Methods]
- Power Apps Collection [Complete Guide]
Frequently Asked Questions
What is a delegation warning in Power Apps?
It means the data source can’t run part of the formula, so Power Apps only processes the first 500 items, or up to 2,000. Microsoft explains it in Understand delegation in a canvas app.
Does a collection fix delegation warnings?
No. ClearCollect isn’t delegable, so the collection only holds the first 500 or 2,000 items. The warning disappears, but results are still incomplete.
Is Search delegable to SharePoint?
No. Use Filter with StartsWith, which is delegable on text columns.
How do I filter by date without a delegation warning?
Compare the date column with a range, such as EndDate >= StartOfLastWeek and EndDate < StartOfThisWeek, instead of using WeekNum, Month or Year on the column.
How do I change the data row limit?
Go to Settings > General > Data row limit and enter a value from 1 to 2,000.

Preeti Sahu is a Microsoft MVP for Power Apps with over six years of experience working with SharePoint Online and the Power Platform. She is the co-author of the book Microsoft Power Platform: A Deep Dive. As a Power Platform developer, she has built various tools with Power Apps and Power Automate, and she makes Microsoft 365 videos for YouTube.