DOI registration stopped working

Recently the registration of artictles from within the OJS interface stopped working. If I go to:
Home > User > Journal Manager > Import/Export Data > mEDRA Export/Registration Plugin > Select Articles
and select an article and click Register button, the browser will show a loading process and after a few minutes I get the notification:

Registration was not successful! The DOI registration server returned an error: 'OJS-mEDRA: Expected 200 response code, got 400 instead

If I turn on error display in the config file, I get:

NOTICE: Use of undefined constant Register in plugins/importexport/crossref/DOIExportPlugin.inc.php
and
WARNING: assert(): Assertion failed in file: /plugins/importexport/medra/classes/MedraWebservice.inc.php at line 158

Hi @mattiman

Which OJS version do you use? Has something changed since it worked last time? Does this happen to all articles? Could you maybe export an article XML that could not be registered and send it to me?

Best,
Bozana

Thanks for the help!

I was using 2.4.8.0 when DOI registration stopped working. Today updated to 2.4.8.1 and still not working.

We didn’t change anything to the website (besides publishing articles)

The problem is with all recent articles I’m trying to register.

I’ll try to send you an example of the xml

So is there any way to figure out what goes wrong? I tried turning on debugging but the only result I got was the message posted above (with the notice and warning). Not sure if that explains what’s going wrong.

Hi @mattiman,

Could you try to manually upload the exported XML file at mEDRA portal? This way you could check if the XML document is the problem. Eventually you will get some other information there.
And to double check: you haven’t changed the DOI prefix, URL domain, or mEDRA plugin configuration data?
Unfortunately I cannot tell anything else now – when I test the registration in my system, it works fine. It is also very strange that it worked and then just sopped working although nothing changed (neither in the code nor in your system environment and configuration) :open_mouth: This only leaves me think that something might be wrong with the articles i.e. XML file. Could you maybe send me your XML file via e-mail (at bozana.bokan@posteo.net)? – I could then just see if the XML is maybe not valid.

Best,
Bozana

Hi @bozana I will try to upload the XML manually. Thanks for the suggestion.

Indeed strange that it stopped working. I didn’t change anything.

Uploading the XML file directly when logged in in the Medra website does work.

So there’s something wrong in the OJS installation. What could it be and how do I figure that out? I haven’t changed the domain of the website or any configuration data as far as I know.

Any help is appreciated!

Hi @mattiman,

Hmmm… Could you somehow print out the variable “$response” before that assert statement in the MedraWebservice.inc.php (line 158)?

(I don’t think the notice above leads to the problem, but you could also change the line 242 in datacite/classes/DOIExportPlugin.inc.php to assert($request->getUserVar('register') != null);

Are your symbolic links in medra/classes/ (i.e. DOIExportDom.inc.php, DOIExportPlugin.inc.php, PubObjectCache.inc.php) correct i.e. pointing to the right classes in datacite/classes/ and are those datacite/classes in the current version (the same as in the current release)?

Hmmm…
:-\ Bozana

Here is that variable:
`

400 Bad Request

Bad Request

Your browser sent a request that this server could not understand.

` So that doesn't tell us much.

About what you say about symbolic links: what do you mean with that?

I’m pretty sure the code is all uptodate: the way I upgrade the website is by downloading the latest OJS release, unpacking it, deleting all files from the server by FTP (except the files and public folder of course) and uploading the new ones. But I can try to upload everything again. Don’t expect that will do much, since if anything would be going wrong with FTP, something else on the website should break as well, you’d expect.

Could you please also print out the request variable, before this line $response = curl_exec($curlCh);?

Do you maybe use a proxy or is one configured in your config.inc.php?

A few files are shared between import/export plugins and they are solved as symbolic links at the moment, see for example ojs/DOIExportDom.inc.php at ojs-stable-2_4_8 · pkp/ojs · GitHub. Sometimes there are problems with those files when unpacking the release – they are not properly copied. I also think this shouldn’t be the problem here – because you probably couldn’t export the XML file either… but… I just don’t know why it is not working… :-\

I’ll try to print out the request variable later when I have time again.

I don’t use a proxy.

After I unpack the download of the OJS package, there are two files with identical code in them, no symbolic links. So in the files I uploaded, these contain the same code:
/plugin/importexport/datacite/classes/DOIExportDom.inc.php
/plugin/importexport/medra/classes/DOIExportDom.inc.php

I have this issue with just one article, i´ve been able to register dois before and after, its just one article that´s causing trouble.

Hi @darkermisae

Could you maybe explain your problem more: what OJS version are you using, what DOI export/registration plugin are you using, what everything have you tried, what exactly is happening, what errors do you get, etc… The more information we get, it will be easier to help…

Best,
Bozana