PKP PN Deposit Failure

Describe the issue or problem
We are unable to to deposit journal issues using the PKP PN Plugin. A day or two after submitting an issue, we get a message saying “An error occurred while exporting an issue. The server’s error log may have more information.” I’ve included one of the log entries below. It seems to me that the issue is being caused by an XML validation issue. That said, I’m not sure how to fix it and I am hoping someone can point me in the right direction.

Steps I took leading up to the issue

Tried to deposit journal issues using the PKP PN Plugin. Latest attempt used this workflow:

1)Go to OJS Dashboard > Settings > Website > Plugins > Installed Plugins > PKP PN Plugin
2)Click on Status
3)Click on Resubmit
4)Wait until you get a message saying “An error occurred while exporting an issue. The server’s error log may have more information.”

What application are you using?
OJS 3.4.05
PKP PN v3.0.0.0

Additional information
Log File

[02-May-2024 16:56:01 UTC] Exception: XML validation failed with:
Array
(
[0] => LibXMLError Object
(
[level] => 2
[code] => 1871
[column] => 0
[y-2024 16:56:01 UTC] Exception: XML validation failed with:
Array
(
[0] => LibXMLError Object
(
[level] => 2
[code] => 1871
[column] => 0
[message] => Element ‘{http://pkp.sfu.ca}email’: This element is not expected. Expected is ( {http://pkp.sfu.ca}givenname ).

        [file] =>
        [line] => 0
    )

)
in /home/libblog/ojs.lib.umassd.edu/lib/pkp/classes/xslt/XMLTypeDescription.php:142
Stack trace:
#0 /home/libblog/ojs.lib.umassd.edu/lib/pkp/classes/filter/TypeDescription.php(142): PKP\xslt\XMLTypeDescription->checkType(Object(DOMDocument))
#1 /home/libblog/ojs.lib.umassd.edu/lib/pkp/plugins/importexport/native/filter/NativeExportFilter.php(71): PKP\filter\TypeDescription->isCompatible(Object(DOMDocument))
#2 /home/libblog/ojs.lib.umassd.edu/lib/pkp/classes/filter/Filter.php(504): PKP\plugins\importexport\native\filter\NativeExportFilter->supports(Array, Object(DOMDocument))
#3 /home/libblog/ojs.lib.umassd.edu/lib/pkp/plugins/importexport/native/filter/PKPPublicationNativeXmlFilter.php(265): PKP\filter\Filter->execute(Array)
#4 /home/libblog/ojs.lib.umassd.edu/lib/pkp/plugins/importexport/native/filter/PKPPublicationNativeXmlFilter.php(118): PKP\plugins\importexport\native\filter\PKPPublicationNativeXmlFilter->addAuthors(Object(DOMDocument), Object(DOMElement), Object(APP\publication\Publication))
#5 /home/libblog/ojs.lib.umassd.edu/plugins/importexport/native/filter/PublicationNativeXmlFilter.php(53): PKP\plugins\importexport\native\filter\PKPPublicationNativeXmlFilter->createEntityNode(Object(DOMDocument), Object(APP\publication\Publication))
#6 /home/libblog/ojs.lib.umassd.edu/lib/pkp/plugins/importexport/native/filter/PKPPublicationNativeXmlFilter.php(62): APP\plugins\importexport\native\filter\PublicationNativeXmlFilter->createEntityNode(Object(DOMDocument), Object(APP\publication\Publication))
#7 /home/libblog/ojs.lib.umassd.edu/lib/pkp/classes/filter/Filter.php(498): PKP\plugins\importexport\native\filter\PKPPublicationNativeXmlFilter->process(Object(APP\publication\Publication))
#8 /home/libblog/ojs.lib.umassd.edu/lib/pkp/plugins/importexport/native/filter/SubmissionNativeXmlFilter.php(183): PKP\filter\Filter->execute(Object(APP\publication\Publication))
#9 /home/libblog/ojs.lib.umassd.edu/lib/pkp/plugins/importexport/native/filter/SubmissionNativeXmlFilter.php(109): PKP\plugins\importexport\native\filter\SubmissionNativeXmlFilter->addPublications(Object(DOMDocument), Object(DOMElement), Object(APP\submission\Submission))
#10 /home/libblog/ojs.lib.umassd.edu/plugins/importexport/native/filter/ArticleNativeXmlFilter.php(38): PKP\plugins\importexport\native\filter\SubmissionNativeXmlFilter->createSubmissionNode(Object(DOMDocument), Object(APP\submission\Submission))
#11 /home/libblog/ojs.lib.umassd.edu/lib/pkp/plugins/importexport/native/filter/SubmissionNativeXmlFilter.php(70): APP\plugins\importexport\native\filter\ArticleNativeXmlFilter->createSubmissionNode(Object(DOMDocument), Object(APP\submission\Submission))
#12 /home/libblog/ojs.lib.umassd.edu/lib/pkp/classes/filter/Filter.php(498): PKP\plugins\importexport\native\filter\SubmissionNativeXmlFilter->process(Array)
#13 /home/libblog/ojs.lib.umassd.edu/plugins/importexport/native/filter/IssueNativeXmlFilter.php(237): PKP\filter\Filter->execute(Array)
#14 /home/libblog/ojs.lib.umassd.edu/plugins/importexport/native/filter/IssueNativeXmlFilter.php(124): APP\plugins\importexport\native\filter\IssueNativeXmlFilter->addArticles(Object(DOMDocument), Object(DOMElement), Object(APP\issue\Issue))
#15 /home/libblog/ojs.lib.umassd.edu/plugins/importexport/native/filter/IssueNativeXmlFilter.php(65): APP\plugins\importexport\native\filter\IssueNativeXmlFilter->createIssueNode(Object(DOMDocument), Object(APP\issue\Issue))
#16 /home/libblog/ojs.lib.umassd.edu/lib/pkp/classes/filter/Filter.php(498): APP\plugins\importexport\native\filter\IssueNativeXmlFilter->process(Array)
#17 /home/libblog/ojs.lib.umassd.edu/lib/pkp/classes/plugins/importexport/PKPImportExportDeployment.php(594): PKP\filter\Filter->execute(Array, true)
#18 /home/libblog/ojs.lib.umassd.edu/plugins/importexport/native/NativeImportExportPlugin.phmessage] => Element ‘{http://pkp.sfu.ca}email’: This element is not expected. Expected is ( {http://pkp.sfu.ca}givenname ).
#19 /home/libblog/ojs.lib.umassd.edu/plugins/importexport/native/NativeImportExportPlugin.php(97): APP\plugins\importexport\native\NativeImportExportPlugin->getExportIssuesDeployment(Array, Object(APP\plugins\importexport\native\NativeImportExportDeployment), Array)
#20 /home/libblog/ojs.lib.umassd.edu/plugins/generic/pln/classes/DepositPackage.php(289): APP\plugins\importexport\native\NativeImportExportPlugin->exportIssues(Array, Object(APP\journal\Journal), NULL, Array)
#21 /home/libblog/ojs.lib.umassd.edu/plugins/generic/pln/classes/DepositPackage.php(509): APP\plugins\generic\pln\classes\DepositPackage->generatePackage()
#22 /home/libblog/ojs.lib.umassd.edu/plugins/generic/pln/classes/tasks/Depositor.php(244): APP\plugins\generic\pln\classes\DepositPackage->packageDeposit()
#23 /home/libblog/ojs.lib.umassd.edu/plugins/generic/pln/classes/tasks/Depositor.php(126): APP\plugins\generic\pln\classes\tasks\Depositor->processNeedPackaging(Object(APP\journal\Journal))
#24 /home/libblog/ojs.lib.umassd.edu/lib/pkp/classes/scheduledTask/ScheduledTask.php(165): APP\plugins\generic\pln\classes\tasks\Depositor->executeActions()
#25 /home/libblog/ojs.lib.umassd.edu/plugins/generic/acron/AcronPlugin.php(281): PKP\scheduledTask\ScheduledTask->execute()
#26 /home/libblog/ojs.lib.umassd.edu/plugins/generic/acron/AcronPlugin.php(195): APP\plugins\generic\acron\AcronPlugin->_shutdownFunction(‘/home/libblog/o…’)
#27 [internal function]: APP\plugins\generic\acron\AcronPlugin->APP\plugins\generic\acron{closure}()
#28 {main}
[02-May-2024 16:56:01 UTC] Filter output validation failed, expected “schema(plugins/importexport/native/native.xsd)”, but found “object”

Hi @msylvain,

The error isn’t very helpful for an end user, but looks like one of the submissions of the issue doesn’t have an author (or it’s missing the given name).

Best,
Jonas Raoni

Thank you for the response, Jonas. We revisited the issues throwing the errors and discovered that they all contain at least one article showing “author” under contributors:

All issues, even the recent recent ones that deposited successfully, have at least a front matter “article” that doesn’t have an author. However, the ones that deposit successfully look like this:

We removed the problem fields for one issue from the database, and we’ve resubmitted it for deposit. I will let you know whether this works.

Thanks for the information! I’ll try to make it easier to spot such problems.

Best,
Jonas Raoni