An upload that hangs at 99% looks like it almost worked. The cause is almost always one of three things — and the fix for each is different.
1. Connection drop during the final flush
When the upload progress bar hits 99% and the file bytes have all been sent, the browser is waiting for the server's acknowledgement. A flaky Wi-Fi connection often holds the request open without ever completing. Symptom: the spinner sits for 60+ seconds and eventually times out with a network error. Fix: check Wi-Fi signal, wait 30 seconds, then retry. If you can move to a wired connection, do.
2. Server-side parser working through a large file
A 30 MB embroidery file or a 200k-stitch DST takes several seconds to parse server-side after upload. The progress bar shows 99% during the parse — it's not actually uploading anymore, it's waiting for parse-and-validate to finish. Symptom: the spinner sits but the page is still responsive; eventually you see findings. Fix: wait up to 60 seconds for large files. If it hasn't completed by then, move to step 3.
3. File the parser is choking on
Some files have malformed headers or stitch records that the parser can't handle cleanly. The upload sits at 99% because the parser is stuck in a retry loop. Symptom: 60+ seconds, no findings, no error. Fix: cancel the upload (browser tab close or upload cancel button), open the file in another tool (Embird, PE-Design) to see if it opens cleanly, re-export if you can.