When new threads are created, they have a separate Client that typically does not a transport::Session object. Since AuditClientAttrs is populated based on transport::Session , that will also be empty.
ForwardableOperationMetadata is an existing mechanism used to copy data across OperationContexts. Given that OperationContexts are associated with Clients, they can also be used to transfer AuditClientAttrs from a parent thread's Client to a child thread's Client.