“Upload failed.” “Invalid file.” “Please try again.” The message almost never tells you which rule you broke. You’re left reverse-engineering a black box while a deadline ticks: a job portal, a passport renewal, a DMV form, a benefits application that only accepts one mystery combination of format, size, and dimensions.
After enough of these, the pattern is boringly consistent. Portals reject files for three reasons, sometimes all at once. Here’s how to diagnose which one you hit, fix it, and stop it happening next time.
1. Wrong Format
Allow-lists are short: JPG, PNG, sometimes PDF. Your iPhone sent HEIC. Your screenshot saved as TIFF. Your scan is a WebP the validator has never heard of. The file looks fine on your screen because your OS renders it; the portal just refuses the extension.
Fix: convert to an allowed type. If the source is an iPhone photo, start with HEIC → JPG. For anything else, re-save as JPG (photos) or PNG (screenshots, graphics with text).
2. Too Large
The cap might be 500 KB, 2 MB, or 5 MB. A modern phone photo is 3–12 MB before you’ve done anything. Government and banking portals in particular love a tiny cap they never surface clearly.
Fix: recompress under the number without dropping to unreadable quality. See how to get a file under 5 MB, or run Under-X MB and give it the exact ceiling.
3. Wrong Dimensions
Identity and profile uploads often demand exact pixels: 600×600, 2×2 inches at 300 DPI, “square only,” “head fills 50–70% of frame.” A correct format and size can still fail if width and height are wrong. This is the one that produces the most baffled retries, because the file “looks right.”
Fix: resize to the exact required dimensions with exact image fit.
Decoding the Common Rejection Messages
The error text is vague on purpose (or by neglect). Here’s what each usually means:
- “Invalid file type” → format problem (#1). Check the extension, not how it looks.
- “File exceeds maximum size” / “too large” → size problem (#2). Recompress.
- “Image does not meet requirements” / “photo not accepted” → almost always dimensions or aspect ratio (#3).
- “Upload failed, try again” with no detail → could be any of the three, or a flaky connection. Check size and format first; they’re the cheapest to rule out.
Known Requirements for Common Portals
- US passport photo: 2×2 inches, 600×600 to 1200×1200 px, JPG, under ~10 MB, white background.
- Most DMV / license portals: JPG or PNG, a few MB max, often a specific aspect ratio.
- LinkedIn profile photo: JPG/PNG/GIF, up to 8 MB, square, at least 400×400.
- Job-application / ATS resume uploads: usually PDF or DOCX, a few MB; and the parser cares about the text, not just the file (see the ATS resume fixer).
Always confirm against the site’s own instructions (requirements change), but these cover the majority of “why won’t it accept my photo” cases.
UploadFix handles all three gates at once
UploadFix is the umbrella tool: pick the target (DMV, passport, LinkedIn, or a custom max MB / width / height), pay $1, and get back a file that satisfies format, size, and dimensions together, instead of running three separate converters and re-checking. Agents can hit the same operation over x402; humans just upload and pay.
Diagnose Faster Next Time
- Read the fine print under the upload box; the rules are usually there in gray 11px type.
- Check the extension and size on disk before you retry, not after.
- If the site says “photo,” assume JPG under a few MB until proven otherwise.
- For any identity document, expect both a size cap and an aspect-ratio rule.
One Privacy Note Before You Upload an ID
Phone photos carry GPS coordinates and device metadata in their EXIF headers. Before you send an ID selfie or a document photo to a stranger’s portal, strip that metadata with the privacy cleaner; the portal doesn’t need to know where you were standing.
When the error is not from the site at all
One category of rejection confuses people because the message does not match anything on the requirements page: the upload never reached the application. Your request passes through several layers before the site's own rules are consulted, and each layer has an independent size ceiling.
You can usually identify what stopped you by the character of the failure rather than the text:
- A styled error naming your file: the application received it and applied its own rules. The published limits are the real ones, and the message can be trusted.
- A plain, unstyled error page: typically the web server refusing the request body before the application saw it. The effective limit is lower than the one advertised, and no amount of retrying will change it.
- The progress bar reaches the end, then nothing happens: the file transferred but was rejected during processing, or the request exceeded a time limit. Very common with large files on slow connections, and it is why a file that fails from a phone can succeed from a desktop.
In all three cases the workaround is identical and slightly unsatisfying: get well under the limit rather than just under it. Aim for roughly 80 percent of the stated ceiling and most of these ambiguities disappear.
Getting it through
Rejection is rarely mysterious; it’s a checklist the UI forgot to print: right format, under the size cap, correct dimensions. Rule the three out in that order. Run the whole checklist at once with UploadFix, or grab the single tool you need from the $1 catalog.
