Image Optimization · Guide

Why Did My Upload Fail? Every Mochify Error, Explained

17 min read · September 17, 2026 · Mochify Engineering Team

If Mochify just showed you an error and sent you here, you are in the right place. This guide covers every message the web app can show when an upload or conversion fails: what it means, what we already did automatically before you saw it, and the one or two things worth trying next. We wrote it from the code and from a month of failure logs, so the advice is ordered by what actually fixes each problem, not by guesswork.

Two facts up front

Across a month of logs, "Network error" and "This image looks incomplete" together account for roughly three in four failed conversions, and most of them are fixable in a minute. And the message you saw stays on screen until your next action, so you can read this, go back, and it will still be there.

Cheat sheet: every message, its cause, and the fix

Find your message in the left column. The right column is the thing to try first.

Message you sawWhat it meansTry this first
This image looks incompleteThe bytes that reached us were not a complete imageOpen the photo once so it fully downloads, or copy it to your desktop, then retry
Network errorThe connection dropped on every one of our three attemptsRetry; switch to Wi-Fi for large files; fewer files at once
Load failed / Something went wrong on our end (Magic Flow)We could not reach the service that interprets your promptSubmit the prompt again
Unknown or unsupported image formatThe file is not an image, or is a format we do not acceptCheck you picked the actual photo, not a sidecar or cache file; see the accepted list
N file(s) not supported. Accepted: ...Same thing, caught before uploadSame
Too many concurrent uploads / Mochify is at capacityA short-lived server-side capWe already tried three times; wait ten seconds and press convert again
Exceeds 20MB limitThe file is over your tier's per-file limitDay Pass ($2) or a plan for 75MB; nothing was uploaded
Staging 3 of N filesFree and guest batches are 3 files at a timeConvert these 3, then the next 3; or 25 at a time on any paid plan
Rate limit reachedThis month's uploads are used upWait for the reset, take a Day Pass, or pick a plan
Processing Failed / All files failed to convertOur side, not yoursRetry once; if it repeats, tell us
Upload session not found or already completedThe upload stalled long enough that we let it goStart the upload again

"This image looks incomplete"

This message means the bytes that reached our server could not be read as a complete image: the file arrived, but it was shorter than a real photo, or its header was there and the picture data was not. The most common cause is a file that is still arriving on your machine, or has not fully downloaded from cloud storage, at the moment you added it.

Modern cloud storage is designed to show you a file before it is really on your disk. iCloud's Optimize Mac Storage, OneDrive's Files On-Demand and Google Drive's streaming mode all keep a small placeholder locally and fetch the full-size original when something opens it. Most of the time the browser triggers that fetch and everything works. Sometimes it gets a partial file instead, and that partial file is what we receive. The same thing happens with a photo you have just AirDropped or copied from a phone or camera while the copy is still finishing.

What to try, in order of how often it works:

  1. Open the photo once on your computer (Photos, Preview, the Windows Photos app, anything) so the full-resolution original downloads, then add it to Mochify again. On iCloud this is the whole fix. See Apple's note on downloading originals from iCloud Photos.
  2. On Windows with OneDrive, right-click the file and choose "Always keep on this device", or copy it to your desktop first. Microsoft documents the placeholder behavior in its Files On-Demand guide.
  3. If the file came from a phone or camera in the last minute, wait for the copy to finish and try again.
  4. If none of that helps, try the file from a different location: a copy on the desktop, not the cloud folder.

One honest caveat. This message covers every case where we could not read the picture, and that includes the rare case where the file is fine and our decoder is the problem. If this keeps happening on a photo you know opens everywhere else, tell us and include the file type (HEIC, JPG, PNG...). That is the fastest route to a fix on our side, and we would rather hear about it than have you fight a file that is not broken.

"Network error"

"Network error" means your connection dropped on every one of our three automatic attempts to send the file. Six in ten of these come from Android phones, and the rest from Windows. It is almost never something on our end, and it is almost always fixed by a retry on a steadier connection.

Here is what already happened before you saw the message. Every upload gets up to three attempts on a transport drop, with a short back-off between attempts (about a second, then about two), so the whole cycle finishes within a few seconds. For files over 5MB we do more than retry: the upload goes up in pieces, each piece is confirmed by the server before the next is sent, and a dropped connection costs at most the piece in flight. If you go offline partway through one of these larger uploads, we pause rather than fail, wait up to five minutes for the browser to come back, and then pick up where we stopped. Leave it stalled for much longer than about twelve minutes and the upload starts over from the beginning, once, automatically, before we show you anything.

On files over 5MB you may have seen an amber "Unstable connection detected. Pausing and retrying..." strip while this was going on. On a small file in manual mode the retries are silent, which is why the message can seem to arrive out of nowhere.

What to try:

  1. Press convert again. A momentary drop is the usual cause and the second run normally succeeds.
  2. On a phone, switch to Wi-Fi for anything large. Mobile data with a weak signal is where most of these come from.
  3. Upload fewer files at once. Manual conversion sends one file at a time, so a shorter batch shortens the window in which a drop can bite.
  4. Keep the tab in the foreground on Android. Backgrounded tabs get throttled, and a throttled tab looks a lot like a dead connection.

Magic Flow: "Load failed" or "Something went wrong on our end"

These two Magic Flow messages are not upload failures. "Load failed" (Safari's wording; other browsers say "Failed to fetch") means the browser could not reach the service that interprets your plain-English prompt. "Something went wrong on our end - please try again in a moment" means that service answered with an error. Either way, your files are untouched and the fix is to submit the prompt again.

Retrying is the right move here for a different reason than the Network error above: the failure is between your browser and the prompt service, not in your files, and a prompt that failed once usually goes through on resubmit. If it fails twice, simplify the prompt: "convert to JPG, max 2000px wide" beats a paragraph. And if you see "Couldn't quite understand that - try again, or rephrase and resubmit," that is the model asking for a clearer instruction, not a connection problem.

"Unknown or unsupported image format" (and "N file(s) not supported")

This one almost always means the file you added is not actually a photo. In a month of logs, most of the rejected files were things that live next to photos and look like them: macOS sidecar files, iCloud placeholder stubs, and what look like cache files dragged out of an application's library folder. The one genuine format gap that matters is camera RAW.

You may see either of two messages, depending on where the file got caught. "N file(s) not supported. Accepted: ..." is the browser check, which looks at the file's name and type and stops the upload before it starts. "Invalid Format: Unknown or unsupported image format" is the server check, which reads the first bytes of the file and identifies it by content, not by name. A non-image renamed to .jpg sails through the first and is refused by the second.

What we accept: PNG, JPEG/JPG, WebP, AVIF, HEIF/HEIC (including camera .HIF), JPEG XL, GIF (the first frame) and SVG. Animated WebP, AVIF and PNG are accepted as input; the output is a still. Our server identifies files by content on every surface, so renaming a file does not make it acceptable.

What we refuse, with a specific message: TIFF and BMP ("TIFF images aren't supported yet - export as PNG or JPEG and try again", and the same for BMP) and PDF, which has its own tools rather than the image path.

What falls into the generic message: camera RAW (.CR3, .ARW, .RAF, .NEF) and Photoshop .PSD. RAW is a real gap, not a mistake on your part: export a JPEG or HEIF from your camera software first.

The three traps to check before anything else:

  1. Files that start with ._. If you unzipped a folder that was created on a Mac, Windows shows a shadow file next to every photo: ._DSC1234.JPG beside DSC1234.JPG. They are metadata sidecars, not images, and "select all" picks them up. Skip anything with the ._ prefix.
  2. Anything dragged out of an app's library or cache folder. Photo managers keep derivative files that carry image names and are not images. Export from the app instead of dragging from its folder.
  3. iCloud Drive stubs. A file called photo.jpg.icloud is a placeholder. Open the real file once so it downloads, then add that.

If your file is a .HEIC from an iPhone and you only want a JPG, the HEIC to JPG converter is the direct route. If it is a .HIF from a Canon, Sony or Fujifilm body, that is a different lane: use the HIF to JPG tool. For a mixed folder of .heif, .heic and .hif, the HEIF to JPG converter takes all three in one batch.

"Too many concurrent uploads" or "Mochify is at capacity"

Both messages are short-lived server-side limits, and by the time you read either one we have already made three attempts within a few seconds. "Too many concurrent uploads. Please retry shortly." is a per-user cap on simultaneous upload sessions that a normal batch will not reach. "Mochify is at capacity. Please retry in 1s." means the processing queue was briefly full.

The fix is the same for both: wait about ten seconds and press convert again. If you are driving Mochify from a script or several tabs at once, stagger the runs. A 25-file batch on a paid plan does not trip the cap, because manual conversion uploads one file at a time and Magic Flow stages at most six.

"Exceeds 20MB limit": the file is over your per-file limit

The per-file limit is 20MB on Free (and without an account) and 75MB on Seller, Pro and the Day Pass. The check runs in your browser before anything is sent, so an oversize file gets its own red card, never joins the upload, and never counts against anything.

The limit is per file, not per batch. If one photo is over and the rest are fine, the rest convert normally.

For a one-off batch of large files, the Day Pass is the cheapest route: $2, 100 uploads within 24 hours, files up to 75MB, no account or subscription, and it sits on top of whatever monthly allowance you already have. For regular work with 45-61MP camera files, Seller or Pro is the fit. We covered why camera files run this big, and what to do about it, in our guide to photos that are too large to upload.

"Staging 3 of N files": why your batch was trimmed

This banner is not an error. Free accounts and visitors without an account convert 3 files per batch; any paid plan (Seller, Pro or a Day Pass) converts 25 per batch. When you add more than your batch size, we stage 3 and set the rest aside. Nothing happens to the files we set aside: they are not uploaded and they do not count against your allowance.

Two things people get wrong here. Signing up for a free account raises your monthly allowance from 3 to 25, but it does not raise the batch size: Free and guest batches are both 3. And the trimmed files are not lost; the banner says "convert these 3 now and drop the rest in a second batch," which is exactly what it sounds like.

If you regularly have more than three files, a Day Pass ($2) gets you 25 at a time for 24 hours, and the pricing page has the monthly plans.

"Rate limit reached": you have used this month's uploads

Despite the wording, this is not a rate limit and waiting a minute will not help. It means the monthly allowance on your account (or the 3 free conversions per month for visitors without an account) ran out partway through a batch. The files that converted before the limit are already downloaded; the message tells you how many remain.

Your options are your monthly reset, a Day Pass ($2 for 100 uploads within 24 hours, which sits on top of your monthly allowance rather than replacing it), or a plan: 25 a month on Free, 300 on Seller, 1,200 on Pro. If you are converting without an account, signing up for a free account takes you from 3 a month to 25.

"Processing Failed" or "All files failed to convert"

These are ours, not yours. "Processing Failed" means the file uploaded fine and our decoder could not process it, either because of a fault in the conversion engine or a missing codec on the server. "All files failed to convert" is a fallback that should not be reachable at all, and the handful of times it appears we treat as a bug report.

Retry once. A deterministic decode failure will fail the same way twice, so if the retry fails, do not keep going: tell us with the file type and roughly when it happened, and we will look at the server log for that request. This is the one category where the log almost always tells us exactly what went wrong.

"Upload session not found or already completed"

This message means an upload stalled long enough that we released it. Half-uploaded files live only in server memory, never on disk, and we clear that memory on a timer: if an upload stalls for more than about twelve minutes we let it go and you will need to start it again. On Magic Flow, if you leave a submitted prompt sitting for more than two minutes before it finishes, the same thing happens.

Before you saw this message we already tried once to restart the upload from the beginning automatically. If you are seeing it, that restart did not complete either, which usually means the connection is the real problem: see the Network error advice above. The same message also appears if the same upload is completed twice (a double-click on convert, say); in that case the first one succeeded, and a duplicate cannot be charged twice.

Mochify Workflow: getting a failed batch through

If a batch failed, the quickest way back is to clear out the files that can never work, make sure the rest are fully on your disk, and describe the job once in Magic Flow.

  1. Read the message before you do anything else.

    It stays on screen until your next action, so find it in the cheat sheet and apply that fix first.

  2. Take out anything that is not a photo.

    Skip files that start with ._, .icloud placeholders and anything dragged out of an app's library folder; export camera RAW to JPEG or HEIF in your camera software first.

  3. Make sure every file is fully on your disk.

    Open cloud-stored photos once, or copy them to your desktop, so the full original is what gets uploaded.

  4. Re-add the files and describe the job in plain English.

    Open Magic Flow, add the files, and type what you want, for example convert to JPG, max 2000px wide. A language model reads the prompt and our C++ engine does the conversion. Batches are 3 files on Free and without an account, and 25 on Seller, Pro and the Day Pass.

Still stuck? What to send us

If you have tried the fix for your message and it still fails, contact us and include: your browser and operating system, the file type and rough size, the exact message you saw, and roughly when it happened. That is enough for us to find the request in our logs. You do not need to send the photo itself, and for the "incomplete" and "processing failed" cases we would rather see the log than the file.

FAQ

Why does Mochify say my image looks incomplete when it opens fine on my computer?

Because the version we received was shorter than the one on your screen. Cloud storage (iCloud, OneDrive, Google Drive) can hand the browser a partial file while the original is still downloading. Open the photo once so the full file is on your disk, or copy it to the desktop, and retry. If it keeps happening on a file you know is good, tell us the file type; it may be a decoder gap on our side.

Does Mochify retry a failed upload automatically?

Yes. Every upload gets up to three attempts on a dropped connection, within a few seconds. Files over 5MB are sent in pieces and resume from the last confirmed piece; if you go offline during one of those, we wait up to five minutes and continue. You only see "Network error" once all of that has been exhausted.

What image formats can I upload to Mochify?

PNG, JPEG/JPG, WebP, AVIF, HEIF/HEIC (including camera .HIF), JPEG XL, GIF and SVG. Our server identifies files by their content, not their extension. TIFF, BMP, PDF, camera RAW and PSD are not accepted as images; export a JPEG or PNG first.

What is the maximum file size I can upload?

20MB per file on Free and without an account; 75MB per file on Seller, Pro and the Day Pass. The check happens in your browser before anything is sent, and an oversize file never counts against your allowance.

Why did Mochify only convert 3 of my files?

Free and guest batches are 3 files at a time; paid plans and the Day Pass convert 25 at a time. The rest were set aside, not uploaded, and not counted. Convert them in the next batch, or take a Day Pass for 25 at a time.

How long can an upload sit before Mochify gives up on it?

About twelve minutes of stall while a file is transferring, and two minutes for a Magic Flow prompt that has been submitted but not finished. Partial uploads live in memory only and are cleared on that timer; we restart once automatically before showing "Upload session not found."

"Rate limit reached" - how long do I have to wait?

Waiting does not help; the message means this month's allowance is used up. It resets monthly, or you can take a $2 Day Pass (100 uploads in 24 hours) or move to a plan.

Ready to try again?

Head back to Magic Flow, add your files, and describe what you want in plain English: convert to JPG, max 2000px wide.