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.

sources

keep reading

More on this.

Two ways to run Tessary.

Tessary is an open-source agent reliability platform. Cloud and self-hosted run the same workflow on the OpenTelemetry traces your agent already emits.

Tessary Cloud

We host it for you. Send your first trace with nothing to deploy and no model key.

what's includedper organization
traces
10,000 per calendar month
stored trace data
1 GB
retention
30 days
model credit
$10, one-time, for triage and root-cause analysis
credit card
not required

Self-hosted Tessary

Run the open-source code on your own infrastructure with one command. Add your own model key for triage and root-cause analysis.

Self-host Tessary for me by following https://github.com/tessaryai/tessary/blob/main/setup.md

docker compose -f oci://docker.io/tessaryai/tessary:compose up -d -y