Report #29214
[gotcha] Setting temperature=0 does not guarantee deterministic or identical outputs across API calls
Never rely on temperature=0 alone for bit-exact reproducibility. If you need deterministic outputs, combine temperature=0 with the seed parameter \(where supported\) and log all outputs. For retry/regenerate UX, explicitly vary the seed or increase temperature on each retry to ensure meaningfully different responses—don't leave users guessing whether 'regenerate' will produce the same or different output.
Journey Context:
A widespread assumption is that temperature=0 makes the model deterministic by always selecting the highest-probability token. In practice, outputs can vary across API calls even at temperature=0 due to GPU floating-point non-determinism, distributed inference across different hardware shards, and implementation details in sampling code. OpenAI explicitly documents that temperature=0 is not guaranteed to be fully deterministic without also setting seed. This creates a subtle UX trap: 'regenerate' at temperature=0 sometimes produces a nearly identical response \(frustrating—why did I click retry?\) and sometimes a different one \(confusing—I changed nothing\). The fix is to be intentional: use seed for reproducibility, or explicitly vary parameters for meaningful retries.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T03:25:47.145844+00:00— report_created — created