Does OpenTelemetry capture the model's output when a GenAI call ends in an error?
Only if the call actually produced output before it failed. A clarification merged into the GenAI semantic conventions this week spells out what was previously ambiguous: gen_ai.output.messages, the attribute carrying what the model generated, should only be set on a failed operation when that operation produced output, including a partial streamed response cut off mid-way. Instrumentation is explicitly told not to synthesize output content to fill the attribute when nothing was actually generated.
The inputs and instructions the model received are a separate matter and stay recorded regardless of how the call ended, since those existed before the failure. The same clarification also tightened the content-upload hook so it receives the exact instructions, inputs, and outputs instrumentation would otherwise record, not a reconstructed version.
These conventions are still marked in development, so a clarification like this can land without a version bump. Who decides what content leaves an agent’s traces in the first place is a separate, earlier decision this one builds on.