Skip to content

fix: flaky fireworks-e2e test - #2753

Merged
kajalj22 merged 7 commits into
mainfrom
fix-flaky-fireworks-e2e-temperature
Aug 25, 2026
Merged

fix: flaky fireworks-e2e test#2753
kajalj22 merged 7 commits into
mainfrom
fix-flaky-fireworks-e2e-temperature

Conversation

@kajalj22

@kajalj22 kajalj22 commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Summary

  • tests/e2e/run_inference_provider_e2e.sh now runs against a dedicated tests/e2e/inference_provider_smoke.jsonl prompt (unambiguous weather request) instead of the shared example_single_tool_call dataset, and pins --temperature 0 for determinism. Mirrors the existing tests/e2e/gpu_smoke.jsonl pattern used by gpu_e2e_test.sh.
  • provider_e2e_tests in cicd-main.yml now uploads rollouts.jsonl/gym.log as a build artifact on every run (mirrors gpu_e2e_tests), for debugging future failures.

Test plan

  • fireworks-e2e CI job passes on this PR

The fireworks-e2e test intermittently fails verify_inference_provider_rollout.py's
assertion that the model emits exactly one function_call, because sampling was
unconstrained and the model would sometimes answer in plain text instead of
calling get_weather. gpu_e2e_test.sh already pins --temperature 0 for the same
determinism reason; apply the same fix here.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Aug 25, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@kajalj22

Copy link
Copy Markdown
Contributor Author

/ok to test ede63c8

--temperature 0 did not fix the fireworks-e2e flake (still failed with the
same empty function_calls assertion), so this isn't sampling-driven flakiness.
Upload rollouts.jsonl/gym.log from provider_e2e_tests as artifacts, mirroring
the existing gpu_e2e_tests pattern, so the next failure can be inspected to
find the real root cause instead of guessing.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
@kajalj22
kajalj22 requested a review from a team as a code owner August 25, 2026 07:21
@kajalj22 kajalj22 changed the title fix: pin temperature to 0 in fireworks-e2e test fix: diagnose and fix flaky fireworks-e2e test Aug 25, 2026
chtruong814
chtruong814 previously approved these changes Aug 25, 2026
@kajalj22

Copy link
Copy Markdown
Contributor Author

/ok to test a5691df

Root cause found via the artifact uploaded in the previous commit: the test
reused the shared example_single_tool_call dataset's first row ("what's it
like in sf?"), which is ambiguous enough that gpt-oss-20b sometimes answers
directly in text instead of calling get_weather. Neither temperature=0 nor
the parsing path was at fault -- the raw response genuinely had no tool call.

Add tests/e2e/inference_provider_smoke.jsonl, a dedicated e2e prompt with an
unambiguous weather request and tool_choice=required, mirroring the existing
tests/e2e/gpu_smoke.jsonl pattern (gpu_e2e_test.sh also uses its own smoke
file rather than a shared dataset). Point run_inference_provider_e2e.sh at it.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
@kajalj22

Copy link
Copy Markdown
Contributor Author

/ok to test b725ba1

@kajalj22 kajalj22 changed the title fix: diagnose and fix flaky fireworks-e2e test fix: dedicated unambiguous prompt for fireworks-e2e Aug 25, 2026
test_provider_e2e_matrix_selects_config_model_and_secret_by_name asserted the
old shared example.jsonl path was present in run_inference_provider_e2e.sh.
Update it to check for the new dedicated inference_provider_smoke.jsonl path.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
@kajalj22

Copy link
Copy Markdown
Contributor Author

/ok to test 5ad0411

tool_choice=required forces a tool call on every agent step. With
max_steps=2, after the model correctly calls get_weather on step 1, step 2
is forced to call a tool again even though there's nothing left to ask,
so it repeats the identical get_weather call -- producing 2 function_call
items instead of 1 and failing the verify script's exact-one-call assertion.

The unambiguous prompt plus --temperature 0 already produces exactly one
correct tool call without forcing it, so drop tool_choice entirely.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
@kajalj22

Copy link
Copy Markdown
Contributor Author

/ok to test 5512587

@kajalj22 kajalj22 changed the title fix: dedicated unambiguous prompt for fireworks-e2e fix: flaky fireworks-e2e test Aug 25, 2026
@kajalj22
kajalj22 requested a review from chtruong814 August 25, 2026 20:29
@kajalj22

Copy link
Copy Markdown
Contributor Author

/ok to test f360125

@kajalj22
kajalj22 enabled auto-merge (squash) August 25, 2026 21:15
@kajalj22
kajalj22 merged commit 0071b5a into main Aug 25, 2026
37 checks passed
@kajalj22
kajalj22 deleted the fix-flaky-fireworks-e2e-temperature branch August 25, 2026 21:41
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.

2 participants