Skip to content

Learning 010: The A2A SDK logs request bodies and span errors where no redactor reaches ​

  • Date: 2026-10-12
  • Source: system-feedback
  • Work item: issue-27

What happened ​

A test asserting that a push token never appears in captured logs failed. The A2A SDK's JSON-RPC dispatcher logs every request body at DEBUG (Request body: …), which includes a registered push config's token. The critic round then found the client-side twin: the SDK's traced transports call record_exception and set_status(ERROR, str(e)), so an error that echoes a request would export it in a span. The harness's redactor covers only its own logger and its own spans.

Learning ​

Before sending a credential through a third-party SDK, check its logging and tracing for request bodies and exception text. A credential the redactor does not know by value needs its path closed at the source: a logger filter, or spans kept from export.

Action ​

DropRequestBodies filters the dispatcher's DEBUG record. no_export() together with the ExportGuard span processor keeps spans started during push registration from export.