From 2e2ce06d1d4ea31a892027e9e52d6d0aab6fada9 Mon Sep 17 00:00:00 2001 From: Kenny Vaneetvelde Date: Wed, 21 Oct 2026 15:23:13 +0200 Subject: [PATCH] Warn that log shippers carry Instructor's raw exhaustion record hide_outputs only governs span attributes. Sentry's LoggingIntegration forwards ERROR records as events by default, so the instructor.v2.retry exhaustion record (raw model output) reaches Sentry regardless of the tracing config. Reported by the Contractify consumer from DocAI's startup wiring; the guide now says to silence the logger before any log handler attaches. Co-Authored-By: Claude Fable 5.1 --- docs/guides/observability.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/guides/observability.md b/docs/guides/observability.md index fe479272..ec4a116f 100644 --- a/docs/guides/observability.md +++ b/docs/guides/observability.md @@ -379,6 +379,9 @@ Instructor's own logging is separate from Atomic Agents' tracing: in the install and retry exhaustion's raw last error, including model output, at ERROR regardless of `hide_outputs`. Setting its level to ERROR does not silence exhaustion. To keep model output out of logs, use CRITICAL below or a filter/handler that drops those records. The logger name and levels may change in later Instructor versions. +Anything that forwards ERROR log records off the host carries that text with it: Sentry's `LoggingIntegration` +(`event_level=logging.ERROR` by default) turns the exhaustion record into a Sentry event, and OpenTelemetry or Datadog +log handlers export it the same way. If `hide_outputs` matters to you, silence the logger before those handlers attach. ```python import logging