The LangSmith SDK's output redaction controls (hideOutputs in JS, hideoutputs in Python) do not apply to streaming token events. When an LLM run produces streaming output, each chunk is recorded as a newtoken event containing the raw token value. These events bypass the redaction pipeline entirely — prepareRunCreateOrUpdateInputs (JS) and hiderun_outputs (Python) only process the inputs and outputs fields on a run, never the events array. As a result, applications relying on output redaction to prevent sensitive LLM output from being stored in LangSmith will still leak the full streamed content via run events.
Both JS and Python SDKs are affected. The same pattern exists in both:
traceable.ts:997-1003 and traceable.ts:1044-1050run_helpers.py:1924 and run_helpers.py:1996In both SDKs, new_token events with raw kwargs.token values are added during streaming, and the redaction pipeline (hideOutputs in JS, hide_outputs in Python) only processes inputs/outputs — never events.
{
"nvd_published_at": "2026-04-23T02:16:16Z",
"severity": "MODERATE",
"cwe_ids": [
"CWE-200",
"CWE-359",
"CWE-532"
],
"github_reviewed": true,
"github_reviewed_at": "2026-04-16T01:20:37Z"
}