Cannot deposit articles to Crossref

I’m getting the following error when trying to deposit an article to crossref using CrossRef XML Export Plugin:

{"status":"error","message-type":"route-not-found","message-version":"1.0.0","message":"Route not found"}

in the error log I also get the following error:

[proxy_fcgi:error] [pid 2283] [client x.x.x.x:xxxxx] AH01071: Got error 'PHP message: PHP Warning: DOMDocument::loadXML(): Empty string supplied as input in /home/example/public_html/plugins/importexport/crossref/CrossRefExportPlugin.inc.php on line 308\nPHP message: PHP Notice: Trying to get property 'nodeValue' of non-object in /home/example/public_html/plugins/importexport/crossref/CrossRefExportPlugin.inc.php on line 345\n', referer: https://example.com/index.php/example/management/importexport/plugin/CrossRefExportPlugin

I downloaded the xml file and deposited it through crossref admin tool and it was deposited successfully.

Also, I’m getting the following error in the error log which I’m not sure if it is related to this issue:

[proxy_fcgi:error] [pid 5112] [client x.x.x.x:xxxxx] AH01071: Got error 'PHP message: PHP Notice: Undefined property: stdClass::$given in /home/example/public_html/plugins/generic/citationStyleLanguage/lib/vendor/seboettg/citeproc-php/src/Rendering/Name/Name.php on line 579\n'

OJS version: 3.2.1.1

Hello @Mohammad_Jaafar_Ali,

The {"status":"error","message-type":"route-not-found","message-version":"1.0.0","message":"Route not found"} error suggests there is something wrong with the path pointing to Crossref.

There was an issue opened here concerning this error:

If the URL in your CrossRefExportPlugin.inc.php is still pointing to https://api.crossref.org/servlet/submissionDownload, it is possible that changing it to https://doi.crossref.org/servlet/submissionDownload will fix the problem.

1 Like

Changed the url and noticed that the constant CROSSREF_API_STATUS_URL is misspelled (as CROSSREF_API_STAUTS_URL) three times in the file.

Now I’m getting a new error:

User 'user@example.com' cannot assume specified role 'user@example.com'

In the crossref admin, the role is different from the username.

Hi @Mohammad_Jaafar_Ali

When did you sign up for Crossref? If it was recently, there’s a new format for username that should have been provided for you by Crossref at the time of your registration. So, you might expect to put:

user@example.com

But with the new changes to Crossref authentication, new members will need to include the role provided by crossref here. So,

user@example.com/role

Your email from Crossref should have included something along these lines:

Using your new Crossref account credentials

Once you’ve set your password, you’re ready to set up the Crossref plugin in your OJS instance.
In the username field, please add your email address, followed by a /, followed by your role.

myemailaddress@email.com/role

In the password field, please add the new password you’ve just created.

Once you update this field in your Crossref plugin settings, it should work.

Best,
Mike

2 Likes

That solved the issue. Many thanks @AhemNason