DOI lookups failing

Hi!

When I try to add a paper to my library using the DOI lookup facility it fails every single time - even if I'm adding a duplicate. I've now tried it with Zotero 2.0.9 running in Firefox 3.6.12 and 3.6.13 on Windows 7 and Mac OS X 10.6.5 computers in seperate network locations. Adding via ISBN and PMID still work as did DOI until today.

The failure is immediate rather that waiting for a second or two as it normally does if it can't find an article and the lookups work if I do them via my University's DOI facility, or directly at crossref - also, having done a packet dump with Wireshark it looks like its not a firewall problem on my machines.

Any ideas what else I could do to diagnose the problem?

Thanks...
  • also, having done a packet dump with Wireshark it looks like its not a firewall problem on my machines.
    You can just look at debug output to see what's happening behind the scenes.

    But you're overthinking this. When DOI lookup breaks (particularly on multiple computers), it's almost always just an issue with the resolver. It'll either fix itself or something changed permanently and we'll need to update something.
  • And DOI lookups appear to be broken for me too right now.
  • By the way, specifically it looks like CrossRef isn't including an XML namespace in its response. I think that happens occasionally and fixes itself (or gets fixed). We could theoretically adjust the CrossRef translator to work without the namespace, but it's a bug on their end.
  • Thank you for the help, I never new about the debug info - sorry - I'll make sure I look at that next time I have an issue.
  • Hello,

    Problem: DOI translation has stopped working since roughly 10 days ago.

    Zotero prompt: Could Not Save Item

    Report ID: 1356508387

    Error Report:
    [JavaScript Error: "DOI Translator: could not find DOI" {file: "file:///C:/Users/kavadi/Documents/Portables/FirefoxPortable/Data/profile/zotero/translators/DOI.js" line: 0}]

    Link to reproduce:
    http://www.onepetro.org/mslib/servlet/onepetropreview?id=00030771&soc=SPE

    Debug output:
    (4)(+0026932): Translate: Parsing code for DOI

    (4)(+0000001): Translate: Binding sandbox to http://partneraccess.oclc.org/

    (4)(+0000001): Translate: Parsing code for CrossRef

    (3)(+0000001): HTTP GET http://www.crossref.org/openurl/?pid=zter:zter321&url_ver=Z39.88-2004&ctx_ver=Z39.88-2004&rft_id=info%3Adoi/10.2118/30771-PA&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&noredirect=true&format=unixref

    (3)(+0000133): Translate: Could not find a result using CrossRef:
    thrown exception =>
    url => undefined
    downloadAssociatedFiles => false
    automaticSnapshots => true

    (5)(+0000000): Translate: running handler 0 for done

    (2)(+0000000): Translate: Translation using DOI failed:
    thrown exception => DOI Translator: could not find DOI
    url => http://www.onepetro.org/mslib/servlet/onepetropreview?id=00030771&soc=SPE
    downloadAssociatedFiles => false
    automaticSnapshots => true

    (3)(+0000014): HTTP POST id=c159dcfe-8a53-4301-a499-30f6549c340d&lastUpdated=2010-01-05%2009%3A05%3A00&diagnostic=version%20%3D%3E%202.0.9%2C%20platform%20%3D%3E%20Win32%2C%20oscpu%20%3D%3E%20Windows%20NT%206.1%2C%20locale%20%3D%3E%20en-US%2C%20appName%20%3D%3E%20Firefox%2C%20appVersion%20%3D%3E%203.6.13%2C%20extensions%20%3D%3E%20DownloadHelper%20(4.8.1)%2C%20Forecastbar%20Enhanced%20(0.9.6)%2C%20LOOP%20for%20Firefox%20(2.1)%2C%20NoScript%20(2.0.4)%2C%20Tab%20Mix%20Plus%20(0.3.8.4)%2C%20Ubiquity%20(0.6)%2C%20Organize%20Status%20Bar%20(0.6.4)%2C%20CookieSafe%20(3.0.5)%2C%20Zotero%20WinWord%20Integration%20(3.0b1)%2C%20HTTPS-Everywhere%20(0.9.2)%2C%20Hyperwords%20(7.0.1)&errorData=thrown%20exception%20%3D%3E%20DOI%20Translator%3A%20could%20not%20find%20DOI%0Aurl%20%3D%3E%20http%3A%2F%2Fwww.onepetro.org%2Fmslib%2Fservlet%2Fonepetropreview%3Fid%3D00030771%26soc%3DSPE%0AdownloadAssociatedFiles%20%3D%3E%20false%0AautomaticSnapshots%20%3D%3E%20true to http://www.zotero.org/repo/report

    (5)(+0000001): Translate: running handler 0 for done

    I can also reproduce the problem with the links mentioned in:
    http://forums.zotero.org/discussion/15611/generic-doi-translator-fails/#Item_4

    It think Dan Stillman is right. It is CrossRef. I am wondering if there is any decision to adjust the CrossRef translator.
  • this is being discussed and will likely be fixed in the very near future. Check here for the most recent exchange among the experts:
    http://forums.zotero.org/discussion/15707/add-by-doi-fails-for-ieee-aip-elsevier-journals/#Item_6
  • I tried and was bold, following the namespace suggestion here http://forums.zotero.org/discussion/15707/add-by-doi-fails-for-ieee-aip-elsevier-journals/#Item_6 .

    I looked up the Crossref.js file in the zotero extension folder and changed two lines of code. It seems to be working.

    function processCrossRef(xmlOutput) {
    xmlOutput = xmlOutput.replace(/<\?xml[^>]*\?>/, "");

    // parse XML with E4X
    try {
    var xml = new XML(xmlOutput);
    if(!xml.doi_record.length()) {
    var xml = new XML(xmlOutput);
    }
    } catch(e) {
    return false;
    }

    // "with ({});" needed to fix default namespace scope issue
    // See https://bugzilla.mozilla.org/show_bug.cgi?id=330572
    //default xml namespace = "http://www.crossref.org/xschema/1.1"; with ({});
    default xml namespace = ""; with ({});

    if(!xml.doi_record.length()) {
    // Fall back to older namespace
    //default xml namespace = "http://www.crossref.org/xschema/1.0";
    default xml namespace = "";
    if(!xml.doi_record.length()) {
    return false;
    }
    }
  • That works, but I'm trying to do this without breaking support for the non-null namespace, since I expect CrossRef to go back to using the namespace declaration in the future.

    Unless I get some feedback on why my current approach is failing (currently under discussion at zotero-dev), I'll post something like your code in the repository soon.
  • edited January 9, 2011
    What paullemmens suggests does not fix the problem for all sites. Example:

    http://www.onepetro.org/mslib/app/Preview.do?paperNumber=SPE-124906-PA&societyCode=SPE

    but it did fix the problem for Elsevier papers.
  • An updated translator that fixes DOI saving for 2.0.9 users is now available. Your copy of Zotero should auto-update within 24 hours, or you can update manually by clicking Update Now in the General pane of the Zotero prefs.

    2.1 Beta users will need to wait for 2.1b3, which should be out within a day or two.
Sign In or Register to comment.