What changed
Producer-side tools call this non-breaking. For a consumer it is a null dereference on an unknown future date.
Affects choices[].finish_reason on CreateCompletionResponse reachable from 1 operation. Nothing fails at the call; it fails wherever the value is finally used, which is usually somewhere else entirely.
can now be null
Who is affected
Code that reads OpenAI's CreateCompletionResponse objects, used by 1 OpenAI operation.
Before and after
| Where | Before | After |
|---|---|---|
| CreateCompletionResponse.choices[].finish_reason | string | null|string |
Code that breaks
// response.choices[0].finish_reason may now be absent or null const finish_reason = response.choices[0].finish_reason ?? fallback;
Based on OpenAI’s published API specification. How severity is decided.