HEIC File Checker
Your HEIC file will not open and every tool says the same useless thing: decode error. That tells you nothing about whether the photo is recoverable or already lost. Drop it below and we will read the header and tell you exactly what is wrong.
We diagnose. We do not sell you repair software, because most of these files cannot be repaired and we would rather say so.
Drop the file that will not open
We read the first part of the header. Any file type is fine — if it is not a HEIC at all, that is worth knowing too.
Is my HEIC file corrupted, or just unsupported?
These are completely different problems and they look identical from the outside. Both produce a photo that will not open. Only one of them is fixable.
An unsupported file is perfectly intact. Your computer simply lacks the decoder. Install it and the same file opens instantly. A damaged file has bytes missing, and no amount of software fixes that.
Telling them apart takes about a hundred bytes of reading. Every chunk in a HEIC declares its own length before its content, so a reader can add the lengths up and compare against the real file size. If they disagree, the file was cut short. If they match, the file is whole and your decoder is the problem.
What "unexpected end of file" is really telling you
It means a box promised more data than exists. That is the whole message, and it is more useful than it sounds.
Say the mdat box — the one holding the compressed picture — starts at byte 4,000 and declares itself 3.1 megabytes long. The reader now knows the file must be at least 3.1 megabytes plus 4,000 bytes. If the file on disk is 1.8 megabytes, the transfer stopped roughly halfway and the rest was never written.
In our experience this is the single most common HEIC failure, and it almost always traces back to one of three things: a USB cable knocked loose during an import, a cloud sync that was interrupted, or a phone that ran out of battery mid-copy.
Why re-copying is the only real fix
The bytes never arrived. They are still on the source device and nowhere else. No tool can reconstruct compressed image data it has never seen, and anything claiming to repair a truncated HEIC is re-wrapping the fragment that did arrive.
You will usually get the top few rows of the photo and grey below. That is not repair. Go back to the phone and copy it again.
Reading the heic ftyp brand to identify what you have
Four ASCII characters at byte eight decide everything. That is the brand, and it names which flavour of the container you are holding.
| Brand | What it is | Will a HEIC decoder open it? |
|---|---|---|
heic | HEVC stills — what an iPhone writes | Yes |
heix | The same at ten bits per channel | Yes |
mif1 | Generic HEIF, codec unspecified | Usually, but not guaranteed |
avif | Same container, AV1 codec inside | No |
isom | MP4 video | No — it is not an image |
Our own signature table used to know only two of these. Everything else fell through to a default that reported MP4 video, so a generic HEIF file was confidently identified as a movie. We fixed it while building this page, and it is worth knowing that other tools make the same mistake for the same reason. If you want the format lineage in full, HEIC vs HEIF vs HEVC covers it.
When the wrong file extension is the whole problem
A name is a label. It has no effect on what is inside, and changing it changes nothing about the bytes.
Where this bites: some export tools write AVIF and keep a .heic extension. Your decoder opens the container, finds AV1 where it expected HEVC, and fails. The checker above spots this immediately, and the fix is a rename rather than a conversion.
The reverse also happens. Someone renames a .heic to .jpg hoping it will open, which never works — the software reads the header, sees HEIC, and refuses regardless of the name.
Cloud placeholders that look like empty files
A file showing zero bytes is usually not damaged. It has not been downloaded yet.
iCloud Photos and OneDrive both leave a small stub in the file system and fetch the real content when something opens it. Copy that stub to a USB drive and you copy the stub, not the photo. The destination gets a file with the right name and nothing in it.
Force a full download before copying. On iCloud that means turning off Optimise Storage or opening each photo first; on OneDrive it means "Always keep on this device".
What we cannot detect
A box walk checks structure, not content. It will miss two things and it is worth knowing which.
Corruption inside intact boxes. If bytes were flipped rather than lost, every length still adds up correctly. The file passes our check and decodes to a photo that is half grey or full of noise. HEVC decodes in blocks that reference their neighbours, so damage in one place spreads downward.
Whether the picture is any good. We never decode it. A structurally perfect file can still contain a black frame, and we would call it clean. Open it in the HEIC viewer to see the actual image, and read HEIC EXIF data if you need the capture details.
If the file is fine and it still will not open
Then the problem moved to your computer, which is good news — that part is fixable.
On Windows you need two separate packages, and installing only the first is what leaves people with a black square instead of a photo. The order and the free versus paid editions are covered in install the Windows codecs. If the photos themselves open but Explorer shows generic icons, that is a cache problem rather than a codec one, and blank thumbnails rather than a broken file walks through clearing it.
HEIF and MP4 share an ancestor, which is why our checker reads them with the same code. If you have landed here with a video rather than a photo, the the same ISO container that holds MP4 video tool reads the same box structure and reports on tracks instead of images.
Frequently asked questions
The checker says my file is complete, so why will nothing open it?
Because the file is fine and your decoder is not. A structurally valid HEIC still needs HEVC support to turn into a picture, and Windows does not ship that by default. Intact structure plus a refusal to open is the signature of a missing codec rather than a damaged file.
What does "unexpected end of file" actually mean?
A box in the file declared a length larger than the bytes that exist. Every chunk of a HEIC states its own size up front, so a reader knows immediately when the data runs out early. It nearly always means a copy or download stopped partway through.
Can a truncated HEIC be repaired?
No. The missing bytes were never transferred, and nothing reconstructs data that never arrived. Tools that promise HEIC repair are usually re-wrapping whatever partial image data survived, which at best gives you the top few rows of the photo. Re-copy from the original device instead.
Why does my file show as zero bytes when the phone says it exists?
You are probably looking at a cloud placeholder. iCloud and OneDrive both leave a stub entry in the file system and fetch the real content on demand. Copying that stub to another drive copies the stub. Force a full download first, then copy.
My file has a .heic name but the checker calls it AVIF. How?
AVIF and HEIC use the same container with different codecs inside — AV1 rather than HEVC. Some export tools write AVIF and keep the HEIC extension. Rename it to .avif and most current browsers will open it directly, which is easier than finding a HEIC decoder.
Does checking a file here send it anywhere?
No. We read the first 256 kilobytes in your browser and compare the declared box sizes against the real file size. Open your network panel while you do it and you will see no request carrying your data.
Why does the checker only read part of my file?
Everything it needs sits at the front. The ftyp brand and the box index live in the first few kilobytes, and truncation is caught by comparing declared lengths with the real file size, which the browser reports without reading anything. Reading a 40-megabyte photo to check its header would be waste.
The structure looks fine but the photo is half grey. What causes that?
The picture data is present but partly corrupted rather than missing, which a box walk cannot see. HEVC decodes in blocks that depend on their neighbours, so damage part way through leaves the top intact and turns the rest to noise or flat grey. That file is not recoverable either.
Should I trust the file extension or the header?
The header, always. A name is just a label anyone can change, and most software reads the first bytes to decide what it has. The exception is software that checks the extension first and refuses before looking — which is why a mismatch is worth fixing even though the header is authoritative.
Why did my file break when I emailed it to myself?
Some mail clients and web forms silently re-encode or resize attachments, and a few truncate at a size limit without warning. If a photo works on the phone and fails after emailing, compare file sizes at both ends — a smaller file at the far end tells you what happened.
Know before you spend money on repair software
Run the file through this checker first. If it comes back structurally complete, no repair tool has anything to fix and you need a codec instead. If it comes back truncated, no repair tool can help either, because the missing bytes are still on the device the photo came from.
That covers almost every HEIC file will not open case we see. The narrow remainder — bytes corrupted in place rather than lost — is the only one where specialist software has anything real to offer, and it is far rarer than the advertising suggests.
