Currently the Mongo::Error::Notable#add_note API is used to append a string to the @notes array.
If a retryable error occurs, context about the error is appended as a note, but the error object itself is not retained, which can make it more challenging to inspect the original error without resorting to string introspection.
Errno::EPIPE: Broken pipe (for /tmp/abc.sock) (on /tmp/abc.sock, connection 1:25, service id fake:3086912560, modern retry, attempt 1, later retry failed: Mongo::Error::OperationFailure: [11000]: E11000 duplicate key error collection: abc.xyz index: ip_address_1 dup key: { ip_address: "192.168.0.1" } (on /tmp/abc.sock, modern retry))
For example, in the above scenario the error code from the operation failure could not be targeted directly, but would need to be extracted from the Mongo::Error#notes.to_s instead.
The original error object should be made accessible in these scenarios.