CrossRef sync of deposits OJS 2.4.8.1 - 3.1.0-1

One journal has had OJS 2.4.8.1 and I noticed that many articles are marked as deposited. When I entered their DOI numbers in doi.org they appear normally although they are not marked as “active”.
We upgarded to OJS 3.1.0-1 and still we have teh same situation. I contacted CrossRef support and they told me that their servers are OK and that they do not know why OJS is not synced with their servers.
IS there any method to resolve all pending deposits/articles and to sync them so it will be clear which are active and which are not yet active.

Thanks

Hi @vvucic

The status update in OJS depends on the method used for DOI deposit/registration. If a cron job i.e. Acron plugin and automatic DOI deposit/registration is used, the status will/should also automatically be updated. In all other cases, one has to use the button “Check status” for that.
So if you use the “Check status” button for a DOI marked as “Deposited” and that can be correctly resolved, does the status changes? If the status does not changes, could you please send me what you see when you do this request: https://api.crossref.org/deposits?filter=doi:10.9876/tj1.v1i2.9, where you would change that DOI with your DOI?

Thanks!
Bozana

hello,

When I type doi in doi.org it is directed to the proper page so it should be active. When I click on Check Status nothing happens. Maybe it needs some time check status.
When I use the link you provided it asks me for username and password. I guess that is of the journal’s Crossref account. I will check that with the board and let you know.

Hi @vvucic

Yes, for that call https://api.crossref.org/deposits?filter=doi:10.9876/tj1.v1i2.9, you would need the Crossref account, i.e. username and password from the Crossref plugin settings.
When you use the button “Check status” only with one article it should not take so long. Do you maybe see any errors in the log file when doing that?
Additionally to the call above, I would like to see what happens when I call: http://api.crossref.org/works/10.9876/tj1.v1i2.9, with that DOI… Thus, could you also tell me that “problematic” DOI for that?

Thanks!
Bozana

You can try with this DOI:
10.21301/eap.v8i2.1
THis is entry from php_error_log
[16-Mar-2018 18:37:14 CST6CDT] NOTICE: Use of undefined constant Register - assumed ‘Register’ (/home/eapiea66/public_html/plugins/importexport/medra/classes/DOIExportPlugin.inc.php(242) : assert code:1)
[16-Mar-2018 18:41:04 CST6CDT] ojs2 has produced an error
Message: WARNING: Invalid argument supplied for foreach()
In file: /home/eapiea66/public_html/plugins/importexport/crossref/CrossRefExportPlugin.inc.php
At line: 128
Stacktrace:
Server info:
OS: Linux
PHP Version: 5.6.34
Apache Version: N/A
DB Driver: mysql
DB server version: 5.6.36-82.1-log
[22-Mar-2018 06:50:56 CST6CDT] ojs2: 404 Not Found

Hmmm…
Do you select the wished article before you press the button “Check status” ?

Of course.

I have done that again and nothing happens. Should I wait for an hour or so?

Hmmm… No, it should happen immediately… :frowning:
Hmmm… Strange… I do not understand it… Neither why that warning is in the log file nor why the status does not change…
Maybe you could try to send me that response, from the call https://api.crossref.org/deposits?filter=doi:10.9876/tj1.v1i2.9? Then we will see further…

Also, would it maybe be possible for you to debug it as see (e.g. print out) the variable $articles before this code line: ojs/CrossRefExportPlugin.inc.php at ojs-2_4_8-1 · pkp/ojs · GitHub ? Maybe you could enter this code line before that: error_log(print_r($articles, true)); – that should print the variable articles in the error log file – then see it in the error log file and tell me what you see… if possible…
Maybe that foreach loop is for some reason not entered…

I entered that line and it looks like on image below:
Screenshot_2018-03-28_19-54-11
I selected one article which is deposited and clicked on Check Status and repeated procedure for the other article that is deposited and clicked Check Status. Output in php_error_log is here:

Hmmm… @vvucic, that seems OK – it is an array, so I definitely do not why those warning message appeared in the error log file… and why the status change does not change…
If you could then send me that Crossref response to that call above…
(Do not forget to remove that added code line… :-))
THANKS!!!

How to get CrossRef response? I removed added code line and checked php_error_log. There is no anything new there.

Hi @vvucic

What do you get when you call https://api.crossref.org/deposits?filter=doi:10.9876/tj1.v1i2.9 (with your DOI) – you need the Crossref credentials (username and password)…

Thanks!
Bozana

I have got this:
https://pastebin.com/67TUEz6K

Oh, @vvucic, that is strange… that response looks correctly, i.e. the status of the last deposit is “completed”. Thus when using the “Check status” button the following steps should be run:

Would it be possible for you to add a few more error_log to debug it? E.g. could you add something like:
error_log(print_r($lastStatus, true));
right before this line: ojs/CrossRefExportPlugin.inc.php at ojs-3_1_0-1 · pkp/ojs · GitHub
and
error_log(print_r("Response OK", true));
at this code line: ojs/CrossRefExportPlugin.inc.php at ojs-3_1_0-1 · pkp/ojs · GitHub

And then select the article with the DOI 10.21301/eap.v8i2.1 and click the button “Check status” while watching the server PHP error log file. What do you then see in the error log file?

Thanks a lot!
Bozana

Hello,

We upgraded that system from OJS 2.4.8.1 to 3.1.0-1 but we still experience the same issue. If article is marked as Deposited and I click on Check Status it says that checking XML etc. but when it is over and after a couple of moments nothing happens.