I've created a ticket for that but didn't get any feedback so I decided to try asking in another way: https://bugs.ruby-lang.org/issues/10110 I'd like to understand what is Exception#cause and what exactly does the third parameter of Kernel#raise. I've seen a code calling raise exception_instance, message rather than passing the exception class and the cause for the handled exception was a string rather than an Exception. I don't even know if this is a bug and if raise should fail if you pass an exception instance with a message as I don't really understand how exception handling works in Ruby and what to expect for Exception#cause and how to properly wrap an exception for logging purposes... If you could at least explain what Exception#cause is supposed to carry on and what the third argument of Kernel#raise does exactly by the specs I'd be a lot grateful. Thanks in advance, Rodrigo.