When a file upload fails, repeating the same action rarely fixes the cause. This reusable file transfer troubleshooting checklist helps you isolate whether the problem comes from the network, browser, application, server, permissions, file format, or transfer integrity—so you can choose the next useful test instead of guessing.
Overview
File transfer problems usually leave a clue in one of four places: the connection, the client sending the file, the server receiving it, or the file and account rules applied during validation. Start by recording what happened before changing anything.
- Note the exact error message, HTTP status code, or point at which the transfer stopped.
- Record the file size, extension, approximate name, and whether other files succeed.
- Identify the transfer method: browser form, desktop application, command-line tool, API request, shared link, or upload portal.
- Check whether the failure affects one user, one device, one network, or everyone.
- Save relevant timestamps and request IDs if the service provides them.
This first snapshot prevents a common troubleshooting mistake: changing several variables at once and losing the evidence that could identify the fault. For API-based workflows, the multipart fields, presigned URL, headers, and validation sequence deserve separate inspection. The developer’s guide to uploading files with APIs provides useful background on those patterns.
Checklist by scenario
When the upload fails immediately
- Refresh the page or restart the client, then try a small, known-good file.
- Confirm that the selected file still exists at its original location and can be opened locally.
- Check the file extension, MIME type, naming rules, and any stated size or count limits.
- Sign out and back in if the workflow uses an authenticated account.
- Verify that the upload destination, request link, or presigned URL has not expired.
- Try a private browser window or a second supported browser to separate session problems from service problems.
If the same small file fails everywhere, examine the destination’s validation and authentication rules. If only one browser or account fails, focus on cookies, extensions, permissions, and session state before changing the file.
When the upload is slow or appears stuck
- Test the connection with another ordinary activity, while remembering that general browsing may not reflect upload performance.
- Pause competing uploads, backups, video calls, or synchronization jobs.
- Try a wired connection or a different network when practical.
- Keep the device awake and the upload tab open if the workflow does not support background transfers.
- Check whether the application supports resumable or chunked uploads for large files.
- Compare a small file and a large file to determine whether the problem is related to transfer duration or file validation.
A long pause does not always mean the transfer has stopped. Look for changing byte counts, progress logs, network activity, or a server-side record before cancelling. If an upload repeatedly fails after a similar amount of time, suspect a timeout, proxy limit, idle connection rule, or session expiration.
When the browser reports a CORS error
A CORS file upload error usually means the browser’s security rules rejected the web application’s cross-origin request. Inspect the browser’s developer console and Network panel rather than relying only on the message shown in the page.
- Confirm that the request reaches the intended origin and uses the expected protocol.
- Check whether an
OPTIONSpreflight request is sent and receives an appropriate response. - Compare the request method and headers with the server’s allowed configuration.
- Check whether credentials, cookies, or authorization headers are being used consistently.
- Inspect redirects, because a redirect to another origin can change the CORS requirements.
Do not treat a browser extension that disables security checks as a production fix. It can help isolate a local testing issue, but the server, storage endpoint, or reverse proxy must be configured correctly for real users. For broader security considerations, see how to send files securely online.
When the server rejects the file
- Check the response status and body for validation details.
- Confirm that the request uses the required multipart field name and content type.
- Verify account permissions, destination permissions, and link access settings.
- Check whether the file is already present and whether duplicate names are handled specially.
- Test with a renamed copy only if naming rules are suspected; do not change the extension without converting the file.
- Review server, application, proxy, and storage logs for the same timestamp.
Authentication failures can be misleading. An expired token, missing scope, incorrect audience, clock mismatch, or revoked session may appear as a generic upload error. Confirm the credential used by the client and avoid pasting access tokens or confidential file contents into public debugging tools.
When the transfer completes but the file is wrong
- Compare the received file size with the source file size.
- Calculate a checksum on both sides when the workflow requires strong integrity verification.
- Check whether the file was transformed, compressed, encrypted, or virus-scanned during processing.
- Confirm that the recipient downloaded the completed object rather than a preview or partial temporary object.
- For resumable uploads, verify that chunks were assembled in the correct order and that retries did not create duplicates.
A checksum mismatch should be treated as an integrity problem, not merely a display issue. Retry with a fresh transfer, preserve the original file, and inspect logs for interrupted chunks or storage-side processing.
What to double-check
Before escalating a failed upload, run through this short second pass:
- Scope: Does the issue affect one file, several files, one user, or the entire workflow?
- Limits: Are there separate limits at the browser, application, reverse proxy, API gateway, storage service, and account level?
- Timeouts: Which component closes the connection first, and is the timeout long enough for the file and network conditions?
- Headers and fields: Are the content type, content length, multipart boundary, authorization, and destination parameters correct?
- Security controls: Could a firewall, proxy, malware scanner, data-loss prevention rule, or access policy be blocking the transfer?
- Privacy: Are logs, screenshots, test files, and support messages free of confidential content and credentials?
For sensitive documents, use an approved secure sharing workflow rather than sending repeated copies through unverified channels. The guidance on sending confidential documents online and secure document sharing can help teams establish a safer fallback.
Common mistakes
- Retrying without recording the error: The first failure may contain the clearest diagnostic detail.
- Changing several settings at once: Make one controlled change, then test again.
- Assuming a browser error is always a server error: Inspect the request, preflight response, redirect chain, and console output.
- Ignoring intermediate infrastructure: A successful application request can still encounter proxy, gateway, or storage limits.
- Testing only with the original large file: A small, non-sensitive test file helps separate connectivity from validation issues.
- Disabling security controls permanently: Temporary isolation tests should never become the operating configuration.
- Reusing an expired link or token: Generate a new authorized transfer and confirm its scope.
- Deleting the source too soon: Keep the original until receipt, integrity, and access have been confirmed.
When to revisit
Revisit this checklist whenever the transfer workflow changes: a new browser or operating system is introduced, an API or storage provider is replaced, a proxy or firewall rule is updated, file sizes increase, or authentication is redesigned. It is also useful before seasonal planning cycles or major project handoffs, when teams may discover that an old upload link, token, client configuration, or documented limit no longer matches the current process.
Turn the checklist into a small runbook for recurring workflows. Include the supported file types, expected request fields, maximum practical transfer size, retry behavior, logging location, escalation contact, and a safe test file. When a failure occurs, capture the time, scope, error, request ID, client version, network context, and result of each test. That record makes the next file transfer troubleshooting session faster and helps distinguish a local file upload not working issue from a system-wide fault.
For teams that regularly exchange large deliverables, also review whether a shared folder, request link, client upload portal, or resumable API is the right workflow. The comparison of file request links and shared folders and the guide to sending files larger than 10GB offer useful prompts for that review.
Final action: Save this checklist with your team’s transfer documentation, then run one controlled test using a small, non-confidential file. Record the result before the next important upload.