Automatic CrossRef registration fails

Hi,

automatic registration with CrossRef failed on an OJS 2.4.8.-0 installation. We are using cron jobs, acron is disabled. The scheduled task started but did not finish (scheduled taks log in the files folder).

There are still articles in the registration queue that had failed - assumingly due to special characters in the DOI.

My current assumption is that the plugin tries to register the failed articles each time the automatic registration is activated. And that it quits the job as soon as it encounters the first article that leads to a fail. And that results in no registration at all. Registering via the register button works fine.

Can you confirm that this is the way the automatic registration works?

regards,
Carola

Hi @carola

Yes, your assumptions are correct.

Note that the Crossref plugin was significantly changed/improved since OJS 2.4.8-1, that came shortly after the 2.4.8.0 release.

In general: It is best to use the OJS current stable GitHub branch or at least most recent OJS release as soon as possible – the changes, bug fixes and improvements happen quickly…

Best,
Bozana

Hi @bozana,

thank you!

Registration still does not work: registering via “Register”-Button also fails (although it seemed to have worked before):

  • OJS 2.4.8.-0
  • the plugin says that registration was successful
  • The registered articles remain in status “submitted” (~10 articles)
  • the DOI cannot be resolved
  • there is no entry for the submissions in the CrossRef-Backend (doi.crossref.org)
  • There was a notice in the error log including a reference to a DataCite class:

[Mon Sep 04 12:03:40.658460 2017] [php5:error] [pid 1681] [client 160.45.169.0:57547] NOTICE: Use of undefined constant Registrierung - assumed ‘Registrierung’ (/data/ojs/…/plugins/importexport/datacite/classes/DOIExportPlugin.inc.php(241) : assert code:1), referer: http://…/index.php/oew/manager/importexport/plugin/CrossRefExportPlugin/all

Is this something you encountered before? We consider upgrading to 2.4.8.-1 :-), but maybe we can still avoid it and directly upgrade to 3.x instead.

regards,
Carola

EDIT: This thread DOI registration stopped working - #10 by bozana seems to be related.

Hi @carola

Yes, we could try to figure out together what is going on:
Concerning the notice you see: try to change that line of code to be like here: ojs/DOIExportPlugin.inc.php at ojs-2_4_8-2 · pkp/ojs · GitHub

Else, see also this post regarding the status change and used Crossref deposit API: [OJS 3.0.2] CrossRef XML Export Plugin: Status not refreshed properly.
I.e. Could you double check the status of those DOIs using that API URL from that post i.e. if the status is “submitted” also there. (Sometimes there is a problem with that Crossref API – it is not seen as ‘productive’ but we also do not have any other way/solution for now). In that case, could you try to contact the Crossref support and ask why the deposits are not processed. Else, let me know what do you see from that URL response.

And finally, if you consider upgrading to the OJS 2.4.x version then please not to the 2.4.8-1 but to the most recent one…

Best,
Bozana

Hi @Bozana,

thanks for the link to the status thread!

After reading it, I retried to register the articles with the register button and this time, it worked. So maybe it was just a problem with the connection or with CrossRef last week.

The status was also updated for most of the articles, althought it occured very slowly (taking several hours for some articles) and there are about 40 left in the submitted state. It switched to “found”, not to “completed”.

The automatic registration still does not work. I will test it again when new publications need to be registered.

best,
Carola

Hi @Bozana,

the crossref settings in table article_settings of one of our installations are (still) not consistent, so I consider a cleaning up.
Are these settings:

crossref::depositStatusUrl
crossref::registeredDoi

necessary for the plugin? If I would download/upload the xml-files to CrossRef, I wouldn’t have this data in OJS anyway, so I guess they cannot be necessary?

If I had a more recent OJS version with a button for status check, would all crossref settings (depositStatus, depositStatusUrl, registeredDoi) be updated for all articles when applying the status check?

best,
Carola

Hi @carola

Are these settings:

crossref::depositStatusUrl
crossref::registeredDoi

necessary for the plugin? If I would download/upload the xml-files to CrossRef, I wouldn’t have this data in OJS anyway, so I guess they cannot be necessary?

Those settings: depositStatusUrl and regisgteredDoi are necessary for some plugin functions: For example, the depositStatusUrl is used to provide the link for the user where he/she can see the deposit failure messages. The registeredDoi is used to figure out what objects (e.g. articles) have not been registered yet, I think.
If the manual deposit/registration is used, then the settings depositStatusUrl is not important, but the registeredDoi could still be used – For example, if the user marks the object as registered, this setting would be used/set.

If I had a more recent OJS version with a button for status check, would all crossref settings (depositStatus, depositStatusUrl, registeredDoi) be updated for all articles when applying the status check?

Yes, the plugin would always take the most recent deposit status (because it could be several deposit/registration attempts) and save that URL. The registeredDoi would be used as said above – to note that the DOI/object has been registered.

Best,
Bozana