We Sent a Blank White Page to 184 OCR Engines. Some of Them Read It Anyway.
By Ben Hain and the OpenOCR Team
The test image could not have been simpler. It was a digital rectangle, 800 pixels wide and 1,000 pixels tall. Every single pixel was pure RGB 255, 255, 255. There was no dust, no faint pencil mark, no stray scanner artifact, and no hidden watermark. It was an expanse of digital nothingness.
When we sent this image to Google's Gemini 3.1 Flash-Lite, the model did not hesitate. It did not return an error code or an empty string. Instead, it returned three words: "REDUCE / REUSE / RECYCLE".
We ran it again. This time the model read: "THE END OF THE CHAPTER". On another attempt, it transcribed a passage titled "THE WONDER OF IT ALL BY DR. BENJAMIN E. MAYS", complete with a fabricated foreword by Dr. Martin Luther King Jr. On both Google's native API endpoint and its OpenAI-compatible endpoint, the engine stared into the digital void and saw a library.

The discovery began by accident while testing a fix for silent dropouts. Gemini 3.1 Flash-Lite had occasionally returned empty text on perfectly readable documents while reporting success to the caller, an issue OpenOCR resolved across all engines earlier this week (read the separate announcement). While verifying that fix with a blank white control image, our team expected silence. Instead, the model began writing essays.
That prompted a broader test. If one popular multimodal engine hallucinated whole documents out of thin air, what would the rest of the market do? To find out, we ran HallucinationBench. We assembled 184 optical character recognition engines available on OpenOCR priced at or below one cent per page, spanning classical OCR software, cloud document pipelines, and modern vision-language models. Each engine received the exact same blank white image three times in a row: 552 calls in total, costing about 75 cents across our benchmark account.
The results were startling. Of the 183 engines that completed their runs, 24 engines, roughly 13 percent, invented text at least once. Eleven engines hallucinated on every single completed call.

These were not obscure research prototypes. The engines that fabricated text included production models from Google, OpenAI, Mistral, Alibaba's Qwen family, and NVIDIA. Meanwhile, every classical OCR engine we tested, including AWS Textract, Azure Document Intelligence, Google Document AI, IBM Docling, and open-source stalwarts like Tesseract and OCRmyPDF, returned absolute silence. They looked at an empty white sheet and saw nothing.
Frontier reasoning models also passed with dignity. Anthropic's Claude 4.5 family (Haiku, Sonnet, and Opus), OpenAI's standard GPT-4.1 and GPT-4o, and Amazon's Nova Lite and Nova Pro all looked at the image and either returned an empty result or politely pointed out that the page was blank. The hallucinations came almost exclusively from the category of models that companies increasingly pick for high-speed, budget-friendly document processing: the small, fast multimodal language models.
The fabricated outputs were not random strings of letters or corrupted character codes. They were cohesive, formatted, grammatically articulate documents that read like genuine paperwork.

Mistral Large produced some of the most striking creations. On its first run, it delivered a complete professional résumé for a "Dr. John Doe" living at 1234 Elm Street in Anytown, USA, including a Bachelor of Science in Biology with a 3.8 GPA and Summa Cum Laude honors. On another run, it cast Dr. John Doe as a practicing physician, generating a patient intake record for a woman named Jane Smith, complete with date of birth, patient ID, and clinical diagnoses of hypertension and type 2 diabetes.
On a third attempt, Mistral Large reached into history, drafting a formal letter addressed to Dr. J. Allen Hynek at the Center for UFO Studies in Evanston, Illinois. "Dear Dr. Hynek," the letter began, "I am writing to you in regards to a sighting of a U.F.O. that I had on the night of June 15, 1976." Later in the test, it produced the opening chapter of a Sherlock Holmes story narrated by Dr. Watson.
OpenAI's GPT-4.1 Mini had its own distinct obsessions. On one run, it produced a complete biometric health screening in Spanish for a patient named Pablo Gonzalo Huerta Estrada, recording his weight at 74.5 kilograms, height at 1.66 meters, and body mass index at 27.03. On another checkpoint, it transcribed a university lab guide for staining rat cerebral cortex tissue, itemizing chemical reagents like Sudan black B, Nissl substance, Methylene blue, and Toluidine blue. On a third try, it spit out a full medication consent form for an imaginary elementary school.
Other models spun equally vivid stories. Alibaba's Qwen 3.6 Flash produced citations from 1860s British legal case reporters, quoting Victorian disputes like Brewster v. Moxon, 7 Jur. N.S. 589 and Brickell v. Smithson. Mistral Small 2506 printed the words "MARINE CORPS" ten times inside a markdown code block, like a military chant. Thinking Machines' Inkling Small drafted an aeronautical engineering white paper titled "JETCUSSION: Energy Conservation through APPROPRIATE Maintenance". InclusionAI's Ling 3.0 Flash VL saw a can of Campbell's Healthy Request soup. NVIDIA's Nemotron 3.5 Content Safety looked at the blank void and reassuringly certified: "User Safety: safe".
To see how different engines handled the silence, here is how the eleven consistent hallucinators compared against a selection of engines that never invented text. Every output is public: click any engine to read exactly what it returned on all three tries.
| Engine | Hallucinated | Clean | Tries | Observed Behavior |
|---|---|---|---|---|
| google-gemini-3.1-flash-lite | 3 | 0 | 3 | Commercial ads, math quizzes, "REDUCE / REUSE / RECYCLE" |
| google-gemini-3.1-flash-lite-preview | 3 | 0 | 3 | Decorative formatting and title pages |
| mistral-mistral-large-2512 | 3 | 0 | 3 | Professional résumés, Spanish library requests |
| mistral-mistral-large-latest | 3 | 0 | 3 | Patient records, 1976 UFO letters, Sherlock Holmes fiction |
| openai-gpt-4.1-mini | 3 | 0 | 3 | Patient biometric charts, school medication consent forms |
| openai-gpt-4.1-mini-2025-04-14 | 3 | 0 | 3 | Rat brain histology stain inventories, hex-encoded text |
| openrouter-google-gemini-3.1-flash-lite | 3 | 0 | 3 | 988 crisis hotline notices |
| openrouter-inclusionai-ling-3.0-flash-vl | 3 | 0 | 3 | Campbell's Healthy Request soup labels |
| openrouter-mistralai-mistral-small-3.1-24b-instruct | 2 | 0 | 2 | Numbered markdown code blocks |
| openrouter-nvidia-nemotron-3.5-content-safety | 3 | 0 | 3 | "User Safety: safe" certifications |
| openrouter-thinkingmachines-inkling-small | 3 | 0 | 3 | Aeronautical maintenance white papers, chemical catalog entries |
| aws-textract | 0 | 3 | 3 | Pure silence (empty response) |
| azure-doc-intel | 0 | 3 | 3 | Pure silence (empty response) |
| google-doc-ai | 0 | 3 | 3 | Pure silence (empty response) |
| ibm-docling-hosted | 0 | 3 | 3 | Pure silence (empty response) |
| local-tesseract | 0 | 3 | 3 | Pure silence (empty response) |
| openocr-ocrmypdf | 0 | 3 | 3 | Pure silence (empty response) |
| anthropic-claude-haiku-4.5 | 0 | 3 | 3 | Explicitly reported image as blank |
| anthropic-claude-sonnet-4.5 | 0 | 3 | 3 | Explicitly reported image as blank |
| openai-gpt-4o-2024-08-06 | 0 | 3 | 3 | Explicitly reported image as blank |
| openrouter-amazon-nova-lite-v1 | 0 | 3 | 3 | Explicitly reported image as blank |
Why does this happen? The answer lies in how modern multimodal architectures differ from classical document scanners. Classical optical character recognition relies on computer vision algorithms designed to detect contrast boundaries, edges, and character glyphs. If there are no ink marks on the paper, the feature extractors detect nothing, and the pipeline halts.
Vision-language models work on a completely different principle. They process an image by dividing it into grid patches, projecting those patches into continuous numeric embeddings, and feeding them into an autoregressive transformer decoder. The language model portion is trained on billions of tokens to anticipate the next likely word in a document.
When an image contains clear printed text, the visual tokens guide the language model. When the image is an empty white void, the visual embeddings provide no guidance at all. Instead of halting and emitting an immediate end-of-sequence token, the decoder finds itself in an ambiguous latent state where its language priors take command. If the mathematical probability tilts slightly toward a document header or a title, the model outputs a single word. Once that first word exists, the transformer does what transformers do best: it predicts the next logical token, spinning out an entire plausible document until it hits a stopping point.
It is computational pareidolia. The human brain looks at clouds and sees faces. A small multimodal model looks at 800,000 identical white pixels and sees a doctor's résumé.

In a benchmark setting, watching an AI hallucinate a 1976 UFO letter is amusing. In production document processing, it is dangerous.
Blank pages are everywhere in commercial paperwork. High-speed duplex scanners routinely photograph the unprinted back sides of invoices, contracts, receipts, and medical files. Multi-page PDF bundles frequently contain blank separator sheets, unprinted back covers, and empty signature fields.
When an engine processes a blank page and outputs silence, downstream systems know what to do. The page is skipped, or flagged for review. But when a vision model populates an empty page with a synthetic medical chart, a fake legal precedent, or a list of corporate expenses, downstream software has no easy way to detect the deception. The text arrives properly formatted, cleanly punctuated, and free of typos. It slips past validation rules and enters databases as verified data.
It is worth noting the boundaries of our run. HallucinationBench focused strictly on high-volume production engines costing one cent or less per page. Premium frontier models priced well above that threshold, including OpenAI o1 and the full Gemini Pro tier, were not tested here. Their behavior on empty pages remains untested in this dataset.
HallucinationBench is now a standing part of the OpenOCR rankings. Every tested engine has a Blank page score out of 100, a model that invents text loses up to 15 points of its overall Quality, and each model's page shows exactly what it returned on all three tries. See every engine's blank-page results on the OpenOCR rankings. Or skip straight to the fun part: see exactly what each model hallucinated.

If you are processing hundreds of thousands of scanned pages a month, speed and low cost matter. But before sending your documents to an engine that promises both, it is worth checking whether it can look at a blank sheet of paper and admit that there is nothing there. If it insists on reading you a Victorian court ruling instead, you have not bought an OCR engine. You have hired a fiction writer.
Co-authored by Ben Hain. This article was slightly more supervised by Ben Hain than the typical OpenOCR article.
Appendix: every engine that hallucinated
These are the engines that invented text on a blank page at least once. Click any of them to see the blank page next to exactly what it "read", for every try.
| Engine | Tries with invented text |
|---|---|
| Gemini 3.1 Flash Lite | 3 of 3 |
| Gemini 3.1 Flash Lite Preview | 3 of 3 |
| Google: Gemini 3.1 Flash Lite | 3 of 3 |
| NVIDIA: Nemotron 3.5 Content Safety | 3 of 3 |
| Thinking Machines: Inkling Small | 3 of 3 |
| gpt-4.1-mini | 3 of 3 |
| gpt-4.1-mini-2025-04-14 | 3 of 3 |
| inclusionAI: Ling 3.0 Flash VL | 3 of 3 |
| mistral-large-2512 | 3 of 3 |
| mistral-large-2512 | 3 of 3 |
| Mistral: Mistral Small 3.1 24B | 2 of 2 |
| ByteDance: UI-TARS 7B | 2 of 3 |
| Google: Gemini 3.1 Flash Image Preview (Gemini 3.1 Flash Image Preview) | 2 of 3 |
| Meta: Llama 4 Maverick | 2 of 3 |
| OpenAI: GPT-4.1 Mini | 2 of 3 |
| Qwen: Qwen3.6 Flash | 2 of 3 |
| Google: Gemini 2.5 Flash | 1 of 3 |
| Google: Gemini 3.1 Flash Lite Preview | 1 of 3 |
| MoonshotAI Kimi Latest | 1 of 3 |
| MoonshotAI: Kimi K2.6 | 1 of 3 |
| Qwen: Qwen3.6 27B | 1 of 3 |
| SpaceXAI: Grok 4.6 | 1 of 3 |
| Xiaomi: MiMo-V2.6-Flash | 1 of 3 |
| mistral-small-2506 | 1 of 3 |
All other engines returned nothing or said the page was blank. Their results are on the OpenOCR rankings.