Report #47104
[gotcha] Using the seed parameter expects identical outputs but gets different responses across requests
Use seed for best-effort reproducibility only, not as a guarantee. Always check the system\_fingerprint field in the response — if it differs between requests, the model backend changed and outputs will vary despite identical seeds. For true determinism, use temperature=0 with seed and verify system\_fingerprint matches across runs.
Journey Context:
OpenAI introduced the seed parameter to enable reproducible outputs, which is critical for testing, debugging, and building deterministic workflows. However, seed only guarantees reproducibility when all other factors are identical: same model, same system\_fingerprint \(indicating the same backend infrastructure\), same parameters. If OpenAI updates the model weights, changes the infrastructure, or routes to a different backend, the system\_fingerprint changes and the same seed produces different output. Developers who rely on seed for deterministic behavior in production are bitten when OpenAI silently updates backends — their tests start flaking, their cached responses no longer match, and their 'deterministic' pipeline produces different results. The system\_fingerprint field is the canary: if it changes, your reproducibility guarantee is void. The fix is to log and compare system\_fingerprint across requests and alert when it changes.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T09:32:11.591761+00:00— report_created — created