WooCommerce Invalid Download Link? Causes & Fix
Your customer paid, clicked the link in their email, and got Invalid download link. Nine times out of ten the order simply never reached a status that grants downloads — so WooCommerce has no permission record to match the link against. Here's how to confirm that and get them their file.
Last updated: 16 Jul 2026 · ~5 min read
The most common cause is that no download permission was ever created for that order — WooCommerce grants access when an order hits Completed, or at Processing only if "Grant access to downloadable products after payment" is switched on. Open the order, scroll to Downloadable product permissions: if there are no rows, that's your answer. Mark the order Completed.
What "Invalid download link" actually means
A WooCommerce download link isn't a link to a file. It's a lookup: the URL carries an order id, a customer email and a permission key, and WooCommerce checks them against a permission record before it serves anything. Those records live in the wp_woocommerce_downloadable_product_permissions table, and they're created at the moment an order reaches a status that grants access.
So "Invalid download link" almost always means there is no record to match — not that the link is malformed. The customer reads it as "you took my money and gave me nothing". You're usually one status change away from fixing it.
The most common causes (most likely first)
- The order never reached a status that grants downloadsOpen the order and scroll to the Downloadable product permissions panel — it's empty. The order is sitting on Processing, On hold or Pending. WooCommerce grants access at Completed, or at Processing only when
WooCommerce → Settings → Products → Downloadable productshas "Grant access to downloadable products after payment" enabled. - Access was granted and then revokedThe order was moved back out of Completed, or it was refunded while "revoke access after refund" was enabled in the same settings screen. The permission rows existed and no longer do — the order notes will show the status change.
- The file was added to the product after the order was placedOlder orders fail, newer ones work. Permissions are created per file at grant time, so a file added to the product later has no row for past orders. Grant it manually from the order's Downloadable product permissions panel.
- The link itself is being mangled in transitCompare the URL in the customer's email against the one on the order's permission row. If
key=ororder=is missing or truncated, an email client, a link-tracking service or a security scanner rewrote it. Send them the link straight from the order screen to confirm. - They're logged out, or logged into the wrong accountThe message is usually different here — "You must be logged in to download files" or "This is not your download link". Check whether "Downloads require login" is on, and whether they bought as a guest with a different email than the one they're signed in with.
Where to look first
- Open the order and scroll to Downloadable product permissions. No rows at all? That's cause 1 or 3 — and it's the answer most of the time.
- Check the order's status. Not Completed? Look at
WooCommerce → Settings → Products → Downloadable products— if "Grant access to downloadable products after payment" is off, Processing grants nothing. Either switch it on, or mark this order Completed. - Rows exist but the customer still can't download? Compare their link to the one on the permission row. A missing
keyororderparameter means something rewrote the URL (cause 4). - Read the order notes. A status change back out of Completed, or a refund, explains a permission that used to work and now doesn't (cause 2).
- Getting a different message? "Must be logged in" or "not your download link" is an account problem, not a permissions one (cause 5).
Wondering how many customers are stuck like this?
The painful part isn't fixing one order — it's that you only found out because one customer bothered to email. Every other order sitting in the wrong status is a silent refund request waiting to happen. DiagnosticIQ's free dashboard, with the Order Rescue add-on, finds the orders piling up on Processing and On hold — the exact ones whose download links are dead — and tells you which gateway or status rule put them there. Fix the pile, not the ticket.
Get the free plugin →Made by Prima Digital — the team behind this guide. Free forever; no card to install.
How to know you fixed it
Reopen the order — a row should now appear under Downloadable product permissions with a remaining-downloads count against it, and clicking that row's link should start the file downloading rather than returning an error.
Frequently asked
Did the customer actually pay?
Check the order status and your gateway dashboard. Processing means payment cleared and the order just needs completing. Pending or On hold means the payment may never have confirmed — sort that first, before granting anything.
Can I fix it for just one customer without changing settings?
Yes. Open the order, use the Grant access box in the Downloadable product permissions panel, pick the product, and the row is created immediately. Their existing link starts working.
Will marking the order Completed email them again?
Yes — moving an order to Completed sends the customer's order-complete email, which carries fresh working download links. That's usually the cleanest fix.
Should I turn on "Grant access after payment"?
For most digital-only stores, yes — it means customers get their files at Processing rather than waiting for you to mark orders Completed. Leave it off if you want to review orders for fraud before releasing files.