ERR_FILE_NOT_FOUND
You double-click an HTML file, or click a link inside one, and Chrome shows a grey page:
Your file couldn't be accessed
It may have been moved, edited, or deleted.
ERR_FILE_NOT_FOUND
The address bar holds the answer. It starts with file:///, and it is the
exact path Chrome looked for. Compare it with where the file really is —
the difference is the bug.
The five usual causes
| What you did | What actually happened |
|---|---|
| Reopened a bookmark, a history entry or a tab | The file was moved, renamed, or was a temporary copy that got cleaned up |
| Opened a report straight from inside a zip | Only that one file was extracted; its siblings stayed in the zip |
Opened index.html, clicked through to a page |
The linked page was never copied, attached or uploaded with it |
Clicked a link to run#3.html or what?.html |
# and ? end the path in a URL, so Chrome asked for a different file |
| Opened an attachment from Outlook or a chat app | It ran from the app's temp folder, which is emptied later |
Moved, renamed or temporary
A bookmark to a file:/// path is a pointer to one spot on one disk. Move
the folder, rename it, sync it to another machine, or open it from the
Downloads folder after a cleanup, and the pointer is dead. Mail clients
are the worst case: Outlook opens an HTML attachment from a hidden temp
folder, so reloading that tab a day later fails even though the email is
still in your inbox.
Fix: save the file somewhere permanent first, then open it from there.
Opened from inside a zip
On Windows, File Explorer shows a zip like a folder. Double-clicking an HTML file in it extracts only that file to a temporary folder and opens it. The page renders, maybe without its styles — but every link to another page, and every image, points at a folder that doesn't exist. CI artifacts (GitHub Actions, GitLab, Jenkins) always arrive this way, which is why coverage and test reports are the most common victims.
Fix: right-click the zip → Extract All, then open the HTML from the extracted folder.
The linked page was never sent
A multi-page report — a coverage report, a Sphinx or MkDocs site, a
JaCoCo or Allure output, an Excel workbook saved as a web page — is a
folder, not a file. Send only index.html and the first page opens fine
on the other side. Every click after that is ERR_FILE_NOT_FOUND, because
the links are relative (src/app.html) and src/ is on your machine.
Fix: send the whole folder as a zip, or publish it so each page has a real URL. If the report is really one page with images and CSS, collapse it into one self-contained file with the HTML inliner and there are no siblings to lose.
#, ? or % in a file name
File names may contain characters that mean something in a URL. A link
href="results#2.html" is read as the file results plus a fragment
2.html. Same for ? (query string) and a bare % (start of an escape).
The file exists; Chrome is asking for a different one.
Fix: rename the files to letters, digits, - and _, or encode the
character in the link — results%232.html. Spaces are fine in practice,
but %20 is the safe form if a generator writes the links.
A path that only exists on your machine
If the address bar shows file:///C:/Users/someone-else/… or
/home/runner/work/…, the link was written as an absolute path by
whatever generated the report. It worked on the machine that built it.
Fix: make the generator write relative links (os.path.relpath in
Python, path.relative in Node). If the page is being served over
http(s) instead, Chrome blocks the same link with a different message —
see “Not allowed to load local resource”.
The way out of file:// for good
Every cause above is the same underlying problem: a file:/// path is
only valid on one disk, in one folder layout, at one moment. The fix that
stops all five is to give the report a real URL.
Comma takes a single HTML file, a folder, or a zip (multi-page reports keep their relative links between pages), and returns one link that opens the same for everyone — no extracting, no temp folders. Readers can open it without an account and pin comments on the exact line or chart they mean; commenting needs a free sign-in.