[OJS 3.4.0.5.] [Portico Plugin 1.2.0.1] Failed export and/or deposit with galley at seperate website

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:

  1. Make an article that contains a galley using the ‘This galley will be available at a separate website.’ option
  2. Put that article in an issue
  3. Try to deposit that issue with the portico plugin, or to export it using the portico plugin
  4. See error

What application are you using?
[OJS 3.4.0.5.]
[Portico Plugin 1.2.0.1]

@asmecher - is this is a known limitation of the Portico plugin - it’s inability to support external galleys?

-Roger
PKP Team

Hi all,

This is indeed an incompatibility between the Portico plugin and galleys hosted on external websites. I’ve fixed it with this commit:

https://github.com/pkp/portico/commit/794863cde59181101d083499a0ec51538a2659bb

Note that galleys hosted at external websites will not be deposited to Portico, though – they’re excluded from the deposit package.

Regards,
Alec Smecher
Public Knowledge Project Team

1 Like

Thank you kindly @rcgillis and @asmecher!

We did not expect to archive the externally hosted galleys through Portico (they are already properly archived), so that is not a problem. Can we expect this fix to be available through the plugin gallery soon, or would it be better to install it from Github for now? I’m afraid I’m not familiar enough with the workflow to judge for myself.