okta-workflows-loops

Diagnose and fix looping construct issues in Okta Workflows flows.

1|Updated Aug 10, 2026
One-click install
npx skills add https://github.com/TheViziusGroup/vibe-engineering-skills --skill okta-workflows-loops-theviziusgroup
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: okta-workflows-loops
Source: https://github.com/TheViziusGroup/vibe-engineering-skills/tree/main/plugins/okta-workflows/skills/okta-workflows-loops
Command: npx skills add https://github.com/TheViziusGroup/vibe-engineering-skills --skill okta-workflows-loops-theviziusgroup

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Looping cards in Okta Workflows behave in non-obvious ways: unbounded For Each concurrency floods Okta and Graph API rate limits, "Ignore Errors" hides failures from the parent flow, plain For Each returns no outputs, nested iteration triggers CPU-time throttling, and List - Filter has a substring direction gotcha. This Skill documents each quirk with its workaround so flows are designed correctly the first time. ## Core Features & Use Cases - Concurrency and rate-limit guidance: Explains the asyncEach concurrency input, the 30-concurrent-Workflows connector ceiling, the 15 concurrent GET /users/{id} limit, the core.concurrency.org.limit.violation System Log event, and the separate org-wide 75-transaction limit. - Error handling and output collection patterns: Shows why "For Each - Ignore Errors" only ignores errors from the parent's perspective (handle errors in the helper flow) and why plain For Each returns no outputs (use Map/Reduce or a shared Table). - Scale and filtering workarounds: Covers CPU-time throttling from deeply nested iteration cards, the List - Filter (Custom) pattern for starts-with matching, and when to switch to Stream Matching Records for very large lists. - Use Case: A flow processing 500 users with For Each starts returning 429 errors; use this Skill to set an explicit concurrency of 5-10, move error logging into the helper flow, and collect results via Map instead of For Each outputs. ## Quick Start Ask the assistant to review your Okta Workflows loop design for rate-limit, error-handling, and output-collection pitfalls before deploying it.

Frequently Asked Questions about okta-workflows-loops

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix 429 rate limit errors in Okta Workflows For Each loops?

Set the concurrency input on the For Each - Ignore Errors (asyncEach) card explicitly: 1 for strict ordering or 5-10 for throughput. Unbounded parallelism hits the Okta connector's 30-concurrent-request ceiling and the 15 concurrent GET /users/{id} limit, producing 429s and core.concurrency.org.limit.violation System Log events.

Why does For Each in Okta Workflows return no output values?

The plain For Each card does not return any output values by design. To collect results from iterations, use the Map or Reduce cards, or have the helper flow write results to a shared Table or stash that the parent flow reads afterward.

Does For Each - Ignore Errors actually ignore all errors?

It only ignores errors from the parent flow's perspective, so a failing item will not stop the batch but you get no parent-level signal. Implement error capture inside the helper flow, such as writing failures to a Tables error log.

When should I use Stream Matching Records instead of For Each in Okta Workflows?

Use Stream Matching Records for very large lists because it paginates with low memory instead of loading everything into parallel branch executions. It avoids the concurrency ceilings and CPU-time throttling that large For Each loops trigger.

Why does List - Filter not match starts-with text in Okta Workflows?

The built-in List - Filter checks substring membership in a specific direction and does not support starts-with semantics. Use the List - Filter (Custom) card with a helper flow to implement starts-with or arbitrary text matching logic.