Apply-to-each-Limits und Paginierung in Power Automate: Die 100.000er-Grenze
Apply-to-each-Limits und Paginierung in Power Automate: Wie die 100.000-Iterationsgrenze funktioniert und wie du sie umgehst.
Wenn ein Flow in Power Automate plötzlich mit einem kryptischen Fehler abbricht, sobald eine SharePoint-Liste, eine Dataverse-Tabelle oder ein Excel-Bereich eine bestimmte Größe überschreitet, steckt fast immer eine der eingebauten Schleifen- und Paginierungsgrenzen dahinter. Die bekannteste davon ist die 100.000er-Grenze für Apply-to-each-Schleifen und paginierte Elemente. Sie wirkt im Alltag lange unsichtbar, weil die meisten Listen deutlich kleiner sind, und schlägt dann bei genau den Prozessen zu, die am wichtigsten sind: Massenimporte, Jahresabschlüsse oder die Migration großer Datenbestände.
Dieser Beitrag erklärt, welche Grenzwerte für Schleifen und Paginierung in Power Automate konkret gelten, wie du die Paginierung für eine Aktion aktivierst und mit welchen Kniffen du auch sehr große Datenmengen zuverlässig verarbeitest, ohne an die 100.000-Iterationsgrenze zu stoßen. Alle Angaben stammen aus der offiziellen Microsoft-Dokumentation.
Welche Grenzwerte gelten für Schleifen und Paginierung?
Microsoft dokumentiert die relevanten Werte in der Übersicht Grenzwerte für automatisierte, geplante und Direktflows. Die wichtigsten Zahlen für eine einzelne Flowausführung:
- Auf jedes Arrayelement anwenden (Apply to each): 5.000 Elemente im Leistungsprofil „Niedrig“, 100.000 Elemente bei allen anderen Profilen. Das ist die maximale Anzahl an Arrayelementen, die eine Apply-to-each-Schleife verarbeiten kann.
- Paginierte Elemente: ebenfalls 5.000 für „Niedrig“, 100.000 für alle anderen Profile. Um mehr Elemente zu verarbeiten, musst du mehrere Flowausführungen über deine Daten auslösen.
- Nach Elementen aufteilen (Split On): 5.000 für „Niedrig“ ohne Trigger-Parallelität, 100.000 für alle anderen ohne Trigger-Parallelität, aber nur 100, sobald die Trigger-Parallelität aktiviert ist.
- Until-Iterationen: standardmäßig 60, maximal 5.000.
- Auf jede Schleife anwenden (Parallelität): Der Standardwert für gleichzeitig laufende Iterationen liegt bei 1, lässt sich aber auf einen Wert zwischen 1 und 50 erhöhen.
Welches Leistungsprofil für deinen Flow gilt, hängt von der Lizenz seines Besitzers ab. „Niedrig“ betrifft unter anderem kostenlose Pläne, Microsoft-365-Pläne, Power-Apps-Plan 1 und Testlizenzen, während Premium-, Prozess- und Pro-Flow-Lizenzen in die Profile „Mittel“ oder „Hoch“ fallen und damit die volle 100.000er-Grenze nutzen können.
Der Fehler WorkflowRunActionRepetitionQuotaExceeded
Stößt eine Apply-to-each-Schleife an ihre maximale Iterationszahl, bricht der Flow mit dem Fehler `WorkflowRunActionRepetitionQuotaExceeded` ab. Laut der Fehlercodereferenz für Cloudfluss sind die häufigsten Ursachen:
- eine Get items- oder Zeilen auflisten-Aktion, die alle Datensätze zurückgibt, statt vorher gefiltert zu werden
- verschachtelte Apply-to-each-Schleifen, deren Iterationszahlen sich multiplizieren, etwa 100 mal 100 gleich 10.000 Durchläufe
- eine sehr große SharePoint-Liste oder Dataverse-Tabelle, die ohne Filter komplett in eine Schleife geladen wird
Als Abhilfe empfiehlt Microsoft, Daten bereits in der Quellaktion über OData-Filter wie `$filter` und `$top` einzugrenzen, statt erst innerhalb der Schleife zu filtern, große Datensätze über mehrere Flowausführungen mit Paginierungs-Token oder Datumsbereichen zu verteilen und für reine Transformationen oder Filterungen die Aktionen Select oder Filter array statt einer vollständigen Apply-to-each-Schleife zu verwenden.
Paginierung für eine Aktion aktivieren
Für viele Datenaktionen, etwa Zeilen auflisten in Dataverse, lässt sich die Paginierung direkt in den Aktionseinstellungen konfigurieren. Die Dokumentation zu Zeilenlisten in Flows beschreibt den Weg im neuen Designer so:
1. Wähle die betreffende Aktionskarte aus, zum Beispiel Zeilen auflisten.
2. Öffne im linken Bereich die Registerkarte Einstellungen und dort Netzwerk.
3. Stelle den Schieberegler Paginierung auf Ein.
4. Trage unter Schwellenwert die maximale Anzahl gewünschter Zeilen ein. Der höchste konfigurierbare Schwellenwert liegt bei 100.000.
Intern rundet Power Automate diesen Wert auf volle Vielfache der Standardseitengröße auf. Trägst du beispielsweise 7.000 ein und die Seitengröße liegt bei 5.000, werden tatsächlich 10.000 Zeilen zurückgegeben. Ohne aktivierte Paginierung gilt automatisch das Standardlimit von 5.000 Zeilen, und die Antwort enthält keinen `@odata.nextLink`-Parameter mehr, sobald der Schwellenwert überschritten wird.
Sonderfall SharePoint: Get items und die 5.000er-Schwelle
Bei der SharePoint-Aktion Get items liegt das Standardlimit sogar nur bei 100 Elementen, lässt sich über die erweiterten Optionen und den Parameter Top Count aber bis auf 5.000 erhöhen, bevor die Liste an die Ansichtsschwelle von SharePoint selbst stößt. Kombinierst du dabei eine Filterabfrage mit einer Liste, die mehr als 5.000 Einträge hat, kann es passieren, dass gar keine Ergebnisse zurückkommen, obwohl passende Datensätze existieren. Auch hier schafft die Aktivierung der Paginierung in den Aktionseinstellungen mit einem ausreichend hohen Schwellenwert Abhilfe, weil Power Automate die Daten dann in Batches nach Top Count abruft, statt nur die ersten 5.000 ungefilterten Zeilen zu prüfen.
Der Action-Burst-Grenzwert von 100.000 Aktionen pro 5 Minuten
Neben der reinen Iterationszahl gibt es noch eine zweite, oft übersehene Bremse: den Action-Burst-Grenzwert. Laut den Richtlinien zum Verständnis von Plattformgrenzen liegt die Obergrenze aktuell bei 100.000 Aktionen pro Flow innerhalb eines rollierenden Fensters von fünf Minuten. Jede Aktion innerhalb einer Apply-to-each-Schleife zählt dabei einzeln, sodass eine Schleife mit mehreren Aktionen pro Durchlauf diesen Grenzwert deutlich schneller erreicht als die reine Iterationszahl vermuten lässt. Microsoft empfiehlt, die Last in einem solchen Fall über mehrere Flows zu verteilen, etwa mithilfe von untergeordneten Flows (Child Flows) oder durch Triggerbedingungen, die unnötige Ausführungen von vornherein verhindern.
Große Datenmengen sauber verarbeiten: Praxisempfehlungen
Für Prozesse, die absehbar in die Nähe der 100.000er-Grenze kommen, hat sich in der Praxis ein klares Vorgehen bewährt:
- Früh filtern statt spät filtern: Grenze Datensätze schon in der Quellaktion über `$filter`, `$top` oder eine SharePoint-Filterabfrage ein, statt die komplette Liste in die Schleife zu laden und erst dort zu prüfen.
- Verschachtelung vermeiden: Prüfe bei mehreren ineinander liegenden Apply-to-each-Schleifen, ob sich die äußere und innere Iterationszahl multiplizieren, und baue stattdessen dort, wo möglich, mit Select oder Filter array vor.
- Auf mehrere Läufe verteilen: Nutze Skiptoken, Datumsbereiche oder einen Zeitplan-Trigger, um eine sehr große Datenmenge planmäßig auf mehrere Flowausführungen aufzuteilen, statt alles in einem einzigen Lauf zu verarbeiten.
- Concurrency gezielt einsetzen: Erhöhst du die Parallelität einer Apply-to-each-Schleife auf einen Wert über 1, laufen mehrere Iterationen gleichzeitig, was Laufzeit spart, aber die Belastung der angebundenen Systeme erhöht und daher nicht bei jedem Connector sinnvoll ist.
- Grenzwerte im Blick behalten: Rufe über Analysen auf der Flow-Details-Seite regelmäßig die tatsächliche Aktionszahl ab, statt nur nach einem Fehler zu reagieren.
Du behältst mit dieser Herangehensweise die Kontrolle über deinen Datenfluss, statt von einem plötzlichen Abbruch bei genau dem Prozess überrascht zu werden, der ohnehin am meisten Aufmerksamkeit verdient.
Für wen lohnt sich die Optimierung solcher Massenprozesse?
Ein einzelner digitaler Mitarbeiter in Power Automate stößt an die 100.000er-Grenze meist erst dann, wenn ein Unternehmen wirklich wächst, etwa bei der Migration einer großen Altdatenbank, beim jährlichen Reporting über sämtliche Kundendatensätze oder bei der Anbindung eines ERP-Systems mit mehreren zehntausend Positionen. Für solche Fälle lohnt sich eine saubere Architektur aus gefilterten Quellabfragen, sinnvoll dimensionierter Paginierung und, wo nötig, mehreren aufeinanderfolgenden Flowausführungen von Anfang an mehr als ein nachträgliches Flicken einzelner Fehler. Wer seine Power-Automate-Prozesse für große Datenmengen von Grund auf robust aufsetzen möchte, findet Unterstützung in der Power-Automate-Beratung von NordFlux.
Häufige Fragen
Was passiert, wenn ein Flow mehr als 100.000 Elemente verarbeiten muss?
Power Automate verarbeitet in einer einzelnen Apply-to-each-Schleife oder einer paginierten Aktion maximal 100.000 Elemente pro Flowausführung. Für größere Datenmengen empfiehlt Microsoft, mehrere Flowausführungen über die Daten auszulösen, etwa mithilfe eines Skiptokens, eines Datumsfilters oder eines Zeitplan-Triggers, der die Verarbeitung in mehrere Portionen aufteilt.
Gilt die 100.000er-Grenze für jede Lizenz gleich?
Nein. Die Grenze von 100.000 gilt für die Leistungsprofile „Mittel“ und „Hoch“, zu denen unter anderem Premium- und Prozesslizenzen zählen. Im Leistungsprofil „Niedrig“, das für kostenlose Pläne, Microsoft-365-Pläne und Testlizenzen gilt, liegt dieselbe Grenze bereits bei 5.000 Elementen.
Worin unterscheidet sich die Apply-to-each-Grenze vom Split-On-Limit?
Die Apply-to-each-Grenze bezieht sich auf eine Schleife, die ein Array innerhalb eines einzigen Flowlaufs durchläuft. Das Split-On-Limit betrifft dagegen Trigger, die ein Array liefern und dieses über eine SplitOn-Eigenschaft direkt in mehrere separate Workflowinstanzen aufteilen, statt eine Foreach-Schleife zu verwenden. Ist bei einem solchen Trigger zusätzlich die Trigger-Parallelität aktiviert, sinkt das Split-On-Limit auf 100 Elemente.
Wie erkenne ich, dass ein Flow an die 100.000-Grenze stößt?
Der Flow bricht mit dem Fehler `WorkflowRunActionRepetitionQuotaExceeded` ab, sobald eine Apply-to-each-Schleife ihre maximale Iterationszahl überschreitet. Im Ausführungsverlauf des Flows lässt sich dieser Fehler direkt an der betroffenen Schleifenaktion nachvollziehen, und über Analysen auf der Flow-Details-Seite siehst du zusätzlich, wie viele Aktionen ein Lauf insgesamt verbraucht hat.
Kann ich den Schwellenwert für die Paginierung höher als 100.000 setzen?
Nein. Laut Microsoft-Dokumentation liegt der maximal konfigurierbare Schwellenwert für die Paginierung bei 100.000, unabhängig davon, welchen Wert du im Einstellungsfeld einträgst. Wird intern auf volle Seitengrößen aufgerundet, kann die tatsächlich zurückgegebene Anzahl geringfügig über deinem eingetragenen Wert liegen, aber niemals über der 100.000er-Obergrenze.
Quellen: Microsoft Learn – Grenzwerte für automatisierte, geplante und Direktflows, Microsoft Learn – Plattformgrenzen verstehen und Drosselung vermeiden, Microsoft Learn – Zeilenlisten in Flows verwenden
NordFlux UG (haftungsbeschränkt)
NordFlux baut Organisationen digitale Mitarbeiter: Automatisierungen und KI-Agenten, die wiederkehrende Arbeit abnehmen. Sie behalten die Kontrolle.
Konkrete Fragen zu Automatisierung oder KI?
In der kostenlosen Erstanalyse besprechen wir Ihren Fall direkt. Unverbindlich.