Why does ActiveSupport::Notifications::Instrumenter make payload[:exception] an array?

Those are the only things it needs to make a notification, what type
of exception it was, and the associated error message.

But I can subscribe to a notification and get access to the ‘exception’ in the payload like so:

ActiveSupport::Notifications.subscribe “process_action.action_controller” do |name, start, finish, id, payload|

exception = payload[:exception]

If the entire exception were in the payload or at least something containing

the stacktrace I could log it, send an email etc.


I realize it’s probably the way it is because we want the payload to be easily serializable so that if we want to push the event to redis or something that can be easily done, but might be nice if the stacktrace were available too.