Describe the issue or problem
One of our new journals has datasets on Zenodo that are an important part of the article. We have included those datasets by including them using the file option ‘This galley will be available at a separate website.’
However, when we try to export or deposit an issue that includes such articles to Portico, the export fails: it goes to a HTTP ERROR 500 page. The logs report:
[Tue Jul 01 13:50:27.584252 2025] [php:error] [pid -] [client -] PHP Fatal error: Uncaught TypeError: PKP\\submissionFile\\Repository::get(): Argument #1 ($id) must be of type int, null given, called in /data/www/journal-name/html/plugins/importexport/portico/PorticoExportPlugin.php on line 237 and defined in /data/www/journal-name/html/lib/pkp/classes/submissionFile/Repository.php:76\nStack trace:\n#0 /data/www/journal-name/html/plugins/importexport/portico/PorticoExportPlugin.php(237): PKP\\submissionFile\\Repository->get()\n#1 /data/www/journal-name/html/plugins/importexport/portico/PorticoExportPlugin.php(57): APP\\plugins\\importexport\\portico\\PorticoExportPlugin->_createFile()\n#2 /data/www/journal-name/html/lib/pkp/pages/management/PKPToolsHandler.php(104): APP\\plugins\\importexport\\portico\\PorticoExportPlugin->display()\n#3 [internal function]: PKP\\pages\\management\\PKPToolsHandler->importexport()\n#4 /data/www/journal-name/html/lib/pkp/classes/core/PKPRouter.php(334): call_user_func()\n#5 /data/www/journal-name/html/lib/pkp/classes/core/PKPPageRouter.php(277): PKP\\core\\PKPRouter->_authorizeInitializeAndCallRequest()\n#6 /data/www/journal-name/html/lib/pkp/classes/core/Dispatcher.php(165): PKP\\core\\PKPPageRouter->route()\n#7 /data/www/journal-name/html/lib/pkp/classes/core/PKPApplication.php(388): PKP\\core\\Dispatcher->dispatch()\n#8 /data/www/journal-name/html/index.php(21): PKP\\core\\PKPApplication->execute()\n#9 {main}\n thrown in /data/www/journal-name/html/lib/pkp/classes/submissionFile/Repository.php on line 76, referer: https://researchdatajournal.org/management/importexport/plugin/APP%5Cplugins%5Cimportexport%5Cportico%5CPorticoExportPlugin
Leading us to believe it’s something to do with galleys, and indeed, in the same journal and installation the portico plugin can properly process issues that do not contain an article with a ‘galley hosted on external website’.
Is this a known bug? Or are we overlooking something? Is there a workaround?
Steps I took leading up to the issue
For example:
- Make an article that contains a galley using the ‘This galley will be available at a separate website.’ option
- Put that article in an issue
- Try to deposit that issue with the portico plugin, or to export it using the portico plugin
- See error
What application are you using?
[OJS 3.4.0.5.]
[Portico Plugin 1.2.0.1]