DEV Community

FileFreight
FileFreight

Posted on

The download didn't work: a 5-step troubleshooting tree to run before you refund

"I downloaded it and it doesn't work." That is the whole ticket — no file name, no error, no device — from a buyer one unanswered day away from a refund request.

Refunding on the spot costs you a sale that was probably fine. Interrogating the buyer costs you the relationship: from their side, they paid, they clicked, and nothing worked. The middle path is a diagnostic tree — five checks, run in the same order every time, each starting from the symptom, isolating one cause, applying one fix, and ending with one short message. Most tickets resolve at step 1 or 2, in minutes. The steps are sorted by how often they are the real cause.

Step 1: The delivery email was never found

Symptom: "I never got anything." No download started.

Check: Confirm from your records: was a delivery email sent, to which address, and when? Ask the buyer to search every folder — spam, promotions, updates — for the product name, and to confirm the address they are searching is the checkout one. A typo at checkout and a second inbox account for much of this branch.

Fix: If the email is buried, finding it is the fix. If the checkout address was wrong, re-send delivery to the corrected address.

Tell the buyer: "Your download was sent to [address] at [time] — it usually lands in spam or promotions. Search your mail for [product name]. If that isn't your inbox, tell me the right one and I'll re-send it there."

Step 2: The link expired, or the download limit was hit

Symptom: "The link doesn't work." The buyer clicked and got an expired or limit-reached page — the branch sellers most often misread as a broken file.

Check: Look at the link's settings and history for this buyer: when does it expire, and how many downloads were already recorded? A buyer who bought on Friday and clicked on Monday can be past a short expiry; a buyer on a flaky connection can burn several attempts on downloads that never finished — every restart counts.

Fix: Extend the expiry or reset the limit for that buyer, and send a fresh link instead of telling them to reuse the old email. Then review your defaults: settings tight enough to lock out paying buyers cost more than sharing ever did.

Tell the buyer: "That link had expired / hit its download limit — my settings, not you. Here's a fresh link: [link]."

Step 3: The file won't open, opens in the wrong app, or arrived damaged

Symptom: "It downloaded but won't open," garbled text, an archive that won't unzip, or a download that "finished" suspiciously fast.

Check: Split this branch in three. Size first: compare what the buyer has with the real file size — much smaller means a partial download, the classic large-file failure on slow connections. App second: ask what opened when they tapped the file. A spreadsheet opening in a photo viewer looks like corruption and is not; phones guess worst. Source last: download your own master file and open it yourself, once — if the master is fine, the problem is in transit or on the device.

Fix: Partial download: fresh link, a stable connection, and for very large files a computer rather than a phone. Wrong app: name the app the file needs. Damaged master (rare): replace the file, then re-deliver — every earlier buyer has the bad copy.

Tell the buyer: "That sounds like the download stopped partway — the full file is [size], and a smaller copy won't open. Here's a fresh link; grab it on Wi-Fi or a computer if you can. If it opens in a strange app, open it with [app name] instead."

Step 4: The license key is rejected

Symptom: "My key doesn't work" — for software, plugins, fonts, and other keyed products.

Check: Compare the key the buyer pasted with the key on their order: the usual culprits are a trailing space from copy-paste, a mistyped lookalike character, or an old key from a previous purchase. Then check its status: revoked, and why — refund, chargeback, duplicate order?

Fix: If the key is valid, walk them through pasting it cleanly into a fresh activation field — and give them the exact key from their order, not directions to find it. If it was revoked because the order was refunded, say so plainly and stop there: the system working as designed.

Tell the buyer: "Try pasting your key again with no spaces before or after — one stray space is enough to reject it. Your key from this order is: [key]. Still refusing? Send me a screenshot of the exact error."

Step 5: Wrong device, wrong account, wrong buyer

Symptom: Everything above checks out, yet the buyer insists nothing works — because they are looking on a different device, in a different account, or someone else made the purchase.

Check: Ask two questions: which device did you buy on, and which are you trying to open it on? Purchases made on a phone get hunted for on a laptop; downloads saved on one machine are expected on another; the person writing may not be who received the delivery email. For team purchases, confirm whether the buyer is also the recipient.

Fix: Point the buyer at the right device and inbox, and re-send there if needed. Where the recipient is a different person, re-issue delivery to their own address rather than blessing a forward of the personal link — they get a link and key of their own.

Tell the buyer: "I think we're chasing this on two devices — delivery went to [address], and the download is on whichever device opened that email. Check there first, or I'll re-send it to this device."

When the tree ends in a refund anyway

Sometimes the honest answer is that the product cannot work for this buyer: an unsupported device, a software version too old, a damaged master file. Refund then — quickly. First check what a refund does in your setup: on per-buyer systems, a refund normally revokes download access and license keys automatically, while files already downloaded cannot be pulled back.

Keep a tally of which step resolves each ticket. If step 1 dominates, your fix is buy-page wording, not support speed. If step 3 dominates, your files are too big for your buyers' connections. The tree doubles as a diagnostic for your store.

One closing note

This tree is deliberately tool-agnostic: every check can be run inside whatever setup you already use, and most fixes are settings, records, or one clear message. It was written alongside FileFreight, a new and small delivery-only tool built around these failure points — tokenized expiring links with per-product limits and expiry (up to 25 downloads and 30 days on the free plan; unlimited and never-expiring on Pro), per-buyer PDF stamping on first download, a license key with every paid order that your software can check through its validation endpoint and that you can revoke at any time, automatic revocation on refund, files up to 500 MB per product, and payments through your own Stripe account (Pro is $19/month at 0% per sale; free is 5%) — with the caveats stated plainly: it is not a merchant of record and does not handle sales tax or VAT, there is no automatic importer yet (the first 20 sellers get a free white-glove migration instead), and it is not a Shopify app. If your setup lets you run this tree in minutes, keep it.

Top comments (0)