Originally posted by **jonasraoni** June 9, 2023
Given that any upgrade on the software has the power of breaking plugins, perhaps it makes sense to protect the application against errors on the plugins.
Besides the `GatewayPlugin` (which have its own URL), plugins can also do real-time interventions through hooks/events and they might register themselves directly as callbacks somewhere across the codebase.
It's possible to protect the plugin instantiation with a `try/catch` using a `Throwable` (catches fatal errors), and with some workarounds, the hook/events might be shielded as well, but if the plugin registers itself as a callback somewhere, there's not much we can do for now.
Together with this, it's also needed to warn the administrator about the malfunctions, especially when it fails on the instantiation phase.
Discussed in https://github.com/pkp/pkp-lib/discussions/9083