Problem with Crossref automatic registration

Hi,
A few days ago i have started implementation of DOI for our institutional journals, and because we have a lot of journals and even more articles I thought that it would be a good idea to use Crossref automatic registration plugin. I have followed provided steps on wiki and all articles and journals are formatted correctly, but every time I try to submit issue of journal or article (we have 5-7 articles per issue) I get following notification:

Notification
Registration was not successful! The DOI registration server returned an error: 'No response from server.'.

Our server is behind institutional proxy and OJS is configured to use it. We have updated to last version of OJS 5 days ago.

Check with your proxy administrator to ensure that outbound HTTP/HTTPS requests are not being blocked to api.crossref.org and search.crossref.org.

Your OJS server will need to make curl requests to these endpoints.

I have contacted our administrators and they said that proxy isn’t blocking connections to addresses, I also tried to test curl connection to them from server cli and it is working with no errors.

The error your seeing indicates that curl is unable to make the requested call, but provides no information on why it was unable to make the call.

This is coming from:

To get an actual error, I would suggest changing this to:

$result = array(array('plugins.importexport.common.register.error.mdsError', 'No response from server. '.curl_error($curlCh)));

If this works to provide additional information on the problem, we can help debug and I’ll open a pull request to add this to the core product.

I have made code modifications accordingly, and when I try to register Issue, I get following error:

NotificationRegistration
 was not successful! The DOI registration server returned an error: 'No 
response from server. couldn't connect to host'.

It seems to me like some plugins doesn’t use proxy directive

Yes, I would concur. The Crossref plugin looks to be directly connecting via curl rather than using the HTTPFileWrapper or HTTPSFileWrapper, which is the only place the proxy settings are currently used.

To use the FileWrappers in Crossref would require implementing a “create” and “update” mode in the open() method, for PUT and POST requests, respectively.

Do you have anyone handy with PHP experience?

Well I could try, I’m handy with programming and have some knowledge of PHP

I’ve created a Git Issue for this here: Use of proxy settings is not consistent · Issue #947 · pkp/pkp-lib · GitHub

I have changed code to define proxy and port for curl, but I think that this is just work around for this problem, and that this should be done via config file.
I have posted this on Git

Hi @ctgraham,

Has the fix patch pkp/pkp-lib#947 Add proxy support for CrossRef curl request · asmecher/ojs@a965431 · GitHub been release in any stable version? I have an installation of 2.4.6 and have the same issue. I updated only the file changed in the patch, but it didn’t fix the “No response from server” error. curl_error didn’t give me much information though.

Thanks
Ghazal

This patch was included in an issue resolved for 2.4.8:

Do you generally use a proxy for outbound connections from OJS? Can your proxy reach the CrossRef server?

Thanks @ctgraham. I have requested our server administrators to check this for us.

Yes it was our proxy configuration. We also had to set http_host and http_port provided by our server administrator in proxy configuration in the config file along side updating registerDoi function based on the mentioned patch. We now can register articles with Crossref through ojs.

Thanks
Ghazal

Hi there,

We have an installation of 2.4.6 and we have enabled automatic DOI registration to CrossRef in Journal Manager > Import/Export Data > CrossRef Export/Registration Plugin > Settings.
However when a new issue is published, DOI is not automatically registered. We have noticed this a few times and waited for a few days after the publication. When I register the unregistered articles manually with “register” button, they will register successfully though.

Would you please assist?

Thanks
Ghazal

Are you using cron to run your scheduled tasks, or are you using the acron plugin? I wonder if the acron plugin knows how to include the crossref automatic registration.

Hi

We have our cronjob set to run: /tools/runScheduledTasks.php. Other scheduled tasks do run fine at the time scheduled though. I didn’t know registering to CrossRef is a scheduledtask, because I was expecting it to happen only straight after publishing, not based on a scheduled timing.

Regards
Ghazal

The cronjob for tools/runScheduledTasks.php will (bizarrely in my mind) not pick up other scheduled tasks (like CrossRef registration) automatically. You will need to add a new cronjob for:
php tools/runScheduledTasks plugins/importexport/crossref/scheduledTasks.xml

This cronjob will periodically run the crossref export.

Hi @ctgraham,

Thanks for your reply.
I had set below cron job to be run every night:
php tools/runScheduledTasks.php plugins/importexport/crossref/scheduledTasks.xml

But it didn’t register any items of the newly published issue.
Is it supposed to export only or register? Where does it export?

We have another cron job php tools/runScheduledTasks.php to be run 5 minutes earlier which works fine.

Best Regards
Ghazal

The intent of this task is to automatically register any published articles with assigned DOIs which have not yet been registered.

It depends on the following:

  • DOIs being assigned to published articles. This is configured in the DOI Public Identifier plugin. This can happen either by an automatic DOI pattern, or by requiring the editor to manually assign a DOI for each article.
  • The CrossRef plugin configured with account information. In the Import/Export CrossRef plugin, there is a settings page requiring a username and password. If this is set, you should be able to not only export from the CrossRef plugin, but also directly register (or update) new (or existing) DOI registrations. If you only see the Export option, and not the Register option, check your CrossRef plugin settings.
  • One or more published articles with outstanding DOI registrations. If the above criteria are met, unless all your articles are already marked as registered, the plugin will list a set of unregistered articles for you.
  • The CrossRef plugin configured to automatically register new articles. In the CrossRef plugin configuration, under the account section, is a checkbox which will enable automatic registration.

Thanks @ctgraham. I checked all of the points yu mentioned were met. The only thing was in DOIPubIdPlugin settings, articles and issues were selected as publishing objects to be registered. I unselected issues. We are going to publish a new issue in a couple of hours. I’ll see how it goes.

Regards
Ghazal