Currently, when an update (groovy) script is run in a clustered environment the node that executes this script is selected at random. If these nodes are separated by cms nodes and site nodes you do not know whether the script is run on a "cms node" or a "site node". However, not all libraries available on a cms node are available on a site node. So if a script needs those specific libraries but gets run a site node this results in a stack trace and the script needs to be run again manually.
As a proposed solution the UpdaterExecutionModule can be extended such that the updater decides whether to start based on a system property. This property can then be set in the setenv of all (cms) nodes.