The scheduled e2e workflow on main has failed every run since at least 2026-06-29 (8 consecutive runs), each time on tests/e2e/test_apps.py::test_rollout_application:
assert not runner_ids_after.intersection(runner_ids_final)
AssertionError: assert not {'<runner-id>'}
i.e. a runner from before the rollout is still alive in the final runner set. Latest main run: https://github.com/fal-ai/fal/actions/runs/28697826070 — test_rollout_application is the only failing test in it.
This looks platform-side (rollout not draining/replacing old runners promptly, or a lifecycle change lengthening the overlap window), same era as the backend issue that got test_traceback_logs xfail'd ("Ping @efiop").
It also fails on unrelated PRs (e.g. #1106, where it failed on 5 of 8 e2e legs across two consecutive runs), so it makes every PR's e2e red.
Options: fix the backend behavior, make the test tolerate a drain window (poll until old runners disappear with a deadline), or xfail with a ping like test_traceback_logs until resolved.
🤖 Generated with Claude Code
The scheduled e2e workflow on
mainhas failed every run since at least 2026-06-29 (8 consecutive runs), each time ontests/e2e/test_apps.py::test_rollout_application:i.e. a runner from before the rollout is still alive in the final runner set. Latest main run: https://github.com/fal-ai/fal/actions/runs/28697826070 —
test_rollout_applicationis the only failing test in it.This looks platform-side (rollout not draining/replacing old runners promptly, or a lifecycle change lengthening the overlap window), same era as the backend issue that got
test_traceback_logsxfail'd ("Ping @efiop").It also fails on unrelated PRs (e.g. #1106, where it failed on 5 of 8 e2e legs across two consecutive runs), so it makes every PR's e2e red.
Options: fix the backend behavior, make the test tolerate a drain window (poll until old runners disappear with a deadline), or xfail with a ping like
test_traceback_logsuntil resolved.🤖 Generated with Claude Code