Troubleshooting

Start at Tools → Site Health in your WordPress admin. ApprovalTrail adds three tests and an info panel, covering the three things that actually generate support tickets.

“Proof files are reachable from the web” (critical)

This means a file inside the proof directory could be downloaded directly, with no approval link required, which defeats the entire point of a token-authorized proof. This is almost always caused by nginx, which ignores .htaccess files entirely (Apache and IIS respect the deny rules ApprovalTrail creates automatically; nginx does not).

Fix: add a server-level deny rule for wp-content/uploads/approvaltrail/. If your host manages nginx for you, send them this block:

location ^~ /wp-content/uploads/approvaltrail/ {
    deny all;
    return 403;
}

Re-run Site Health after your host applies it to confirm the test passes.

Your site is relying on PHP’s built-in mail() function through your web server, which is routinely filed as spam by receiving mail providers. Here, that means your customer never sees the approval link, and from your side, it just looks like the plugin isn’t working.

Fix: install an SMTP plugin (WP Mail SMTP, FluentSMTP, Post SMTP, or any of them) and connect it to a real mail provider. In the meantime, the approval link is always shown to you in the admin notice after sending and inside the order panel. Copy it and send it however you like. A mail problem should never mean a lost proof.

This means jobs are waiting more than an hour to run. When this happens, preview generation and retention clean-up will lag behind — proofs still work, but previews may take longer to appear and old master files won’t be released on schedule.

This is a WordPress cron problem on your hosting account, not a plugin fault. Check whether wp-cron is actually firing (most hosts throttle it under low traffic), and if it isn’t, add a real system cron entry pointed at wp-cron.php instead of relying on WordPress’s default page-load trigger.

Site Health → Info panel

Paste this whenever you open a support request. It shows: plugin version, schema version, order-storage mode, master files on disk and their size, masters already released by retention, and your server’s own upload ceiling.

Common questions that aren’t bugs

“The order won’t move to Completed.” That’s the production lock working as intended; check whether a proof on the order is still waiting on the customer.

“The customer says the link doesn’t work.” Check whether it was reissued: issuing a new link kills the old one by design (see Sending a proof). The record shows exactly when each link was issued.

“The download is smaller than the file I uploaded.” That’s the preview, not the master. By design, the default download is a lighter preview rather than the full original. The master is available explicitly. See Files, previews and retention.

“My 80 MB file won’t upload.” Check the server’s actual ceiling on the Settings screen storage meter. ApprovalTrail’s own maximum-upload-size setting can only sit below your server’s limit, never above it.

Something here wrong or missing? Tell us and we will fix it.