thoth-pub/thoth

Crossref DOI deposit records can be created (and "successfully" submitted) with no DOIs in them

rhigman opened this issue · 0 comments

While compiling Crossref DOI deposit output, if a work has no DOI, we only raise an error if it's a chapter, not the parent work.

} else if is_chapter {
// `doi_data` element is mandatory for `content_item`, and must contain
// both `doi` element and `resource` (landing page) element
return Err(ThothError::IncompleteMetadataRecord(
DEPOSIT_ERROR.to_string(),
"Missing chapter DOI".to_string(),
));
}

This is because it's permissible to send DOI deposit files without a parent work DOI, e.g. if the only purpose of the submission is to register the chapter DOIs. But if a work has no DOI and also no chapters, we don't flag this, but instead create a DOI deposit file that doesn't contain any DOIs (hence does nothing).

Crossref will happily accept this file, and send a confirmation email which doesn't indicate any failures, just has an empty record_count (as below).

<?xml version="1.0" encoding="UTF-8"?>
<doi_batch_diagnostic status="completed" sp="ds5">
   <submission_id>[...]</submission_id>
   <batch_id>[...]</batch_id>
   <batch_data>
      <record_count>0</record_count>
      <success_count>0</success_count>
      <warning_count>0</warning_count>
      <failure_count>0</failure_count>
   </batch_data>
</doi_batch_diagnostic>

Relevant to #551.