Fix propagate() to unwrap MultiExceptions

Sometimes MultiExceptions are thrown which cause tests expecting a
certain type of Exception to fail. We fix this by unpacking the
MultiException to get the exception we're actually interested in.