The best AI models cite retracted papers, and they cannot know it A developer built sourcecheck, an open-source tool that verifies AI-generated citations against registries like OpenAlex and Crossref, and found that top models including GPT-5.5 and Claude Sonnet 5 cite retracted papers without awareness. Testing twelve models on scientific questions, the tool flagged retractions both old and new, revealing that models cannot detect post-training retractions due to structural limitations. The developer argues for a verification layer in production systems to catch fabricated or retracted citations. Ask a top model for the pivotal trial behind a real drug approval and it will give you the right paper and the right DOI, confidently. In one of my test runs, GPT-5.5, Claude Sonnet 5, and Claude Opus 4.8 all cited the ADVOCATE trial for avacopan in ANCA-associated vasculitis. Correct paper. Real DOI. Published in the New England Journal of Medicine. It was retracted in 2026. None of the models mentioned that, because the retraction happened after their training cutoff. They have no way to know. A smarter model would not have known either. This is the failure I wanted to measure: not that AI invents citations, but that it cites real, authoritative, since-retracted papers as solid evidence, and cannot detect it. So I built the thing that checks, resolving every citation against the actual registries instead of asking another model. I asked twelve frontier and production models to answer scientific questions and cite the literature, then ran every citation through sourcecheck https://github.com/aberaio/sourcecheck , an open-source source-integrity gate that resolves each one against OpenAlex and Crossref and checks it against Retraction Watch. I split the retraction questions into two kinds. Famous old retractions the STAP stem-cell papers, the Surgisphere hydroxychloroquine study that predate every model's training. And prominent papers retracted in 2025 and 2026, after the cutoffs, that were reputable and citable when the models were trained. The contrast is the whole story: sourcecheck flagged every one of them, old and new, because a registry does not have a training cutoff. A model gets better at not inventing DOIs as it scales. On easy, famous citations the best models are already near zero fabrication in my runs. But no amount of scaling lets a model know about a retraction that happened after it was trained. That is structural. The gap between "the model cites it" and "the registry knows it is dead" does not close with a better model. It closes with a lookup. That is the case for a verification layer that most demos miss, because a demo asks about things the model already knows. The existence check, does this DOI resolve to a real paper at all, is the other half. On famous classics the best models fabricate almost nothing. But push off the well-trodden path and it climbs: fabrication roughly doubled on my 2025-findings questions, and an older small model still in wide deployment fabricated close to half of its DOIs. Most production systems do not run the frontier flagship on every call; they run the mid-tier, where fabrication sits in the double digits. There is an interactive playground https://mikias.io/citations . Pick a model, pick a question, and see each citation with sourcecheck's verdict: the DOI struck through when it resolves to nothing, an amber flag when the paper is real but retracted, and for the post-cutoff ones, a note that the model had no way to know. Nothing is mocked; every citation was resolved live. sourcecheck checks whether a claim is sourced , not whether it is true . It verifies three things against authoritative sources: the citation exists, it has not been retracted, and experimentally the claim is present in it. It does not adjudicate truth. That narrow scope is the point, because those three checks are exactly the ones a language model cannot do for itself. It hallucinates DOIs, and it cannot know a retraction past its cutoff. A fairness note: fabrication rate is the ranking; the retraction result is a safety finding, not a per-model penalty, since citing the correct-but-since-retracted paper is often the right answer to the question. The value is the flag the model could not raise. If you are building anything that lets an AI cite sources over medical, legal, or scientific material, this is the failure mode that does not show up in a demo and does show up in production. The board is at mikias.io/citations https://mikias.io/citations , the library is open source at github.com/aberaio/sourcecheck https://github.com/aberaio/sourcecheck , and every run publishes its full per-citation audit.