Workflows are not guaranteed to finish and can fail silently. This has been a popular discussion of late. Please read related posts and craft additional workflow logic accordingly: Prevent BackEnd Workflow from Breaking
Bubble has basically admitted in another post + help page that it’s not reliable for things over 100ish. Everyone recommends doing a recursive workflow where you send a list to the API, have it do something to the first item, then scheduling itself with the same list:minus first item. There would also be a condition to only run when the list’s count is > 0