It seems a little odd saving the errors as state on the plugin manager - 1) it is a side effect and 2) I'm not sure that in general  having the list actual helps since the errors are logged? My instinct would be to have a single trait on_broken_plugin = Callable that we call if we get a broken plugin. The default implementation would raise the exception. However, if we really need the list of errors (maybe to show to the user) then maybe we should really have a 'plugin check' step at startup?