Bulk Update using Bulk Metadata Editor not working

I’ve needed to make some bulk metadata edits and add some tags to items in an instance of Omeka Classic 3.1.2 hosted on Reclaim, but the edits are not taking effect. I try to selef a set of item through the Items interface to batch add tags, and I have also needed to update values in one metadata element using Bulk Metadata Editor. The processes seem to run, but then I see no changes. Then I repeat the bulk actions, and they eventually seem to take.

Here’s what the log says, which makes little sense to me. I need some assistance in interpreting these errors. I think it might be something to do with the Zend controller, I’ve had issues with PHP updates. But I cannot figure out WHY this plugin is involved, other than I am making changes in a specific collection.

[11-Feb-2025 03:26:48 UTC] PHP Fatal error: Uncaught Error: Call to a member function getParams() on null in /home/gallery1/public_html/plugins/CollectionsPlus/CollectionsPlusPlugin.php:284
Stack trace:
#0 /home/gallery1/public_html/application/libraries/Omeka/Plugin/Broker.php(268): CollectionsPlusPlugin->filterItemsBrowseParams(Array)
#1 /home/gallery1/public_html/application/libraries/globals.php(324): Omeka_Plugin_Broker->applyFilters(‘items_browse_pa…’, Array, Array)
#2 /home/gallery1/public_html/application/libraries/Omeka/Db/Table.php(306): apply_filters(‘items_browse_pa…’, Array)
#3 /home/gallery1/public_html/application/models/Job/ItemBatchEditAll.php(35): Omeka_Db_Table->getSelectForFindBy(Array)
#4 /home/gallery1/public_html/application/libraries/Omeka/Job/Process/Wrapper.php(29): Job_ItemBatchEditAll->perform()
#5 /home/gallery1/public_html/application/scripts/background.php(61): Omeka_Job_Process_Wrapper->run(Array)
#6 {main}
thrown in /home/gallery1/public_html/plugins/CollectionsPlus/CollectionsPlusPlugin.php on line 284

[11-Feb-2025 03:31:07 UTC] PHP Fatal error: Uncaught Error: Call to a member function getParams() on null in /home/gallery1/public_html/plugins/CollectionsPlus/CollectionsPlusPlugin.php:284
Stack trace:
#0 /home/gallery1/public_html/application/libraries/Omeka/Plugin/Broker.php(268): CollectionsPlusPlugin->filterItemsBrowseParams(Array)
#1 /home/gallery1/public_html/application/libraries/globals.php(324): Omeka_Plugin_Broker->applyFilters(‘items_browse_pa…’, Array, Array)
#2 /home/gallery1/public_html/application/libraries/Omeka/Db/Table.php(306): apply_filters(‘items_browse_pa…’, Array)
#3 /home/gallery1/public_html/plugins/BulkMetadataEditor/views/helpers/BulkEdit.php(164): Omeka_Db_Table->getSelectForFindBy(Array)
#4 /home/gallery1/public_html/plugins/BulkMetadataEditor/views/helpers/BulkEdit.php(43): BulkMetadataEditor_View_Helper_BulkEdit->_getSelect(Array)
#5 /home/gallery1/public_html/plugins/BulkMetadataEditor/views/helpers/BulkEdit.php(526): BulkMetadataEditor_View_Helper_BulkEdit->getItems(Array)
#6 /home/gallery1/public_html/plugins/BulkMetadataEditor/libraries/BulkMetadataEditor/Job/Process.php(32): BulkMetadataEditor_View_Helper_BulkEdit->perform(Array)
#7 /home/gallery1/public_html/application/libraries/Omeka/Job/Process/Wrapper.php(29): BulkMetadataEditor_Job_Process->perform()
#8 /home/gallery1/public_html/application/scripts/background.php(61): Omeka_Job_Process_Wrapper->run(Array)
#9 {main}
thrown in /home/gallery1/public_html/plugins/CollectionsPlus/CollectionsPlusPlugin.php on line 284

The error you posted is coming from the “Collections Plus” plugin, as I think you noticed. You could try disabling it to see if it resolves your issue.

As for why that particular plugin would cause an error when you’re doing something different, from a glance it looks like an incompatibility between that plugin and background jobs (like your batch edit attempts). So even though you’re not using the plugin when you’re trying to make these edits, it could still be causing your problem.

When I disabled the Collections Plus plugin the tag update and the Bulk Metadata Update both worked. I need to decide if that plugin provided anything that I really required, or go down the rabbit hole of WHY the background process incompatibility exists.

Should you find something, please post your comments also on the issue pages of the concerned plugins, so that solutions can be investigated. Thanks

In this case what’s probably necessary on the plugin side is just a small check along the lines of

if (!$req) {
    return;
}

in the browse filters for the CollectionsPlus plugin, so they aren’t assuming there will always be a request to get (there isn’t one in a background job).

1 Like

Daniele just released version 1.4 of CollectionsPlus, which fixed the problem for me.

Thanks @lljohnston for raising the issue, and @jflatnes for suggesting a smooth and quick fix.