Skip to content

fix(polling): stop synchronous waits on cancelled tasks - #286

Draft
Kayvan-Zahiri wants to merge 1 commit into
runwayml:mainfrom
Kayvan-Zahiri:codex/stop-sync-polling-cancelled-tasks
Draft

Kayvan-Zahiri wants to merge 1 commit into
runwayml:mainfrom
Kayvan-Zahiri:codex/stop-sync-polling-cancelled-tasks

Conversation

@Kayvan-Zahiri

Copy link
Copy Markdown

Synchronous wait_for_task_output() ignores a task's terminal CANCELLED status and keeps polling until timeout, although its documented behavior is to raise TaskFailedError when a task fails or is cancelled. Both synchronous implementations have this gap: the creation-response factory and the method injected into retrieved tasks. Their async counterparts already handle cancellation.

Add CANCELLED to the two synchronous failure checks, matching existing async behavior.

Validation: 12 new cases use the public sync/async clients with local HTTPX MockTransport responses through generate.image.create(...).wait_for_task_output() and tasks.retrieve(...).wait_for_task_output(). They cover CANCELLED/FAILED/SUCCEEDED and reject any extra request after the terminal response. Before: 2 failed, 10 passed. After: all 12 pass; the full non-API-resource suite reports 494 passed, 2 skipped. Generated API-resource tests needing a mock API server are excluded.

Repository-wide Ruff lint, changed-file formatting, targeted mypy, and git diff --check pass. Poll sleeps are replaced with no-ops in tests. No live generation requests or paid Runway resources used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant