We have recently started using Vercel Workflows in one of our applications. To offer a user-friendly, non-technical version of the Workflow dashboard to the user we are using the world.runs.list() method, with the world obtained with getWorld() in the workflow/runtime npm package.
We would expect the list method to return all runs that match our filter parameters, but we are getting an incomplete list that forces us to maintain our own list of executions. This is not ideal, as we can now have synchronization issue between our list and what is on Vercel, and not having to worry about tracking runs on our end is one of the main reasons we are using workflows.
Current Behavior
This reproduces somewhat reliably but only after a large number of workflows (~50) with a large number of steps have been run.
The “disappearing” workflows seem to be the ones that have been running for a longer time, e.g. a few hours, although we are not positive that this is the definitive factor.
The runs still exist and can be individually fetched if their run ID is known, but we are unable to enumerate them in either the Vercel Workflow dashboard or the world API results.
Environment
Framework:Next.js API setup with a handful of endpoints in the same project where the Workflow is deployed.
Dashboard: A separate React project, but even trying to combine them has no effect on the “lost” runs.
We think this might be an issue with the world API or a limitation of some kind, but haven’t been able to find corroborating evidence in the Docs.
We have both filtered and unfiltered endpoints, and we observe the issue in both cases.
The total number of runs, including completed ones, is around 50k, however we observe the issue even in the filtered endpoint which typically returns 10-50 rows.
The relevant TypeScript code snippets are as follows.
Unfiltered: