I’ve done some more sleuthing on this Updating AI plugin fails
My main question was why this only happens when updating an already-installed plugin and not when the plugin is newly installed. The answer is that core catches PG::UndefinedTable
exceptions but not PG:UndefinedColumn
. If the plugin is already installed then the exception is the latter, if the plugin is brand new then it is the former.