Remove redundant workflow deadlines from google_genai and openai_agents tests - #1835
Merged
Conversation
The google_genai integration tests nested 10-30s workflow execution timeouts inside pytest-timeout's 60s bound. On a stalled macOS CI runner the deadline expired before the worker processed the next workflow task, so healthy workflows failed with "Workflow timed out" (test_mcp_side_effects, test_mcp_full_schema_propagation, test_file_upload_str_path, test_interaction_lifecycle, test_agents_crud). Drop the deadlines, as #1816 did for test_replay_tool_loop; pytest-timeout still bounds real hangs. test_register_files_without_credentials_fails relied on the 10s deadline to cut off activity retries (the server caps schedule-to-close at the run timeout), so its workflow now disables retries for the permanent missing-credentials error instead of depending on deadline arithmetic.
Several openai_agents tests started workflows with a 5-10s execution timeout nested inside pytest-timeout's 60s bound. On a loaded macOS CI runner the first workflow task was occasionally delayed past the default 10s workflow task timeout; the retried task then ran after the workflow's own execution timeout had already fired, so test_run_config_models failed with 'TimeoutError: Workflow timed out' and test_exception_handling found no activity in history ('assert found'). Drop those deadlines, as #1816 did for test_replay_tool_loop; pytest-timeout still bounds real hangs. Also assert the failure cause in assert_status_retry_behavior so an unexpected failure mode is reported directly.
There was a problem hiding this comment.
🟡 Changes recommended
The new 30-second activity timeout can reproduce the runner-stall failure mode the PR intends to eliminate.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Removes short workflow deadlines that caused flaky AI integration tests during runner stalls.
Changes:
- Removes redundant workflow execution timeouts.
- Verifies OpenAI retry failures’ cause chain.
- Disables retries for the missing-credentials Gemini activity.
File summaries
| File | Description |
|---|---|
tests/contrib/openai_agents/test_openai.py |
Removes deadlines and strengthens error assertions. |
tests/contrib/google_genai/test_gemini.py |
Removes deadlines and configures missing-credential failure handling. |
tests/contrib/google_genai/test_gemini_streaming.py |
Removes streaming workflow deadlines. |
tests/contrib/google_genai/test_gemini_mcp.py |
Removes MCP workflow deadlines. |
Review details
- Files reviewed: 4/4 changed files
- Comments generated: 1
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
JasonSteving99
approved these changes
Sep 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What was changed
Dropped the 5-30s
execution_timeoutvalues from the google_genai and openai_agents integration tests, following #1816.RegisterFilesWorkflowusesmaximum_attempts=1for the permanent missing-credentials error it relied on the deadline to cut short.assert_status_retry_behaviorasserts the failure cause chain.Why
Failing CI logs show activities completing within a second, then a 10-40s runner stall, after which a healthy workflow was killed by a deadline that only duplicated pytest-timeout's 60s bound.
Testing
Stall injection (SIGSTOP the test process 12s x3): 2/80 failed before, 80/80 after. An emulated 11s first-task stall reproduces both openai_agents failures before and passes after. Lint clean.