Common Issues
The gateway refunded but WooCommerce reported an error#
Symptom: A refund proposal shows a warning or an error, but your payment gateway dashboard shows the money went back to the customer.
Cause: A gateway can refund the money and still return an error to WooCommerce, or a step after the refund can fail.
What Resolution Desk does: If WooCommerce raises an error after it created the refund, Resolution Desk finds the refund that was created, uses it, and records the error as a warning. If the gateway did not confirm the refund, the warning reads “The gateway refund was not confirmed. Check the payment gateway before refunding again.” If an execution is interrupted, the item shows as stuck on the Health tab.
Fix:
- Open your payment gateway dashboard and check whether the refund went through.
- Open the order in WooCommerce and look at its refunds and order notes.
- Do not retry the refund until you know the answer. Retrying a refund the gateway already made can refund twice.
- For a stuck item, open the proposal, add the required note and use Mark failed for review. Then settle it by hand: refund manually in WooCommerce if the money did not move, or dismiss the failed item if it did.
Many gateways refuse refunds on old payments. The proposal warns you when the payment is more than a set number of days old. Choose a manual refund for those.
Which individual gateways confirm refunds in which way is not documented. Confirm with the gateways you support before publishing gateway-specific advice.
Customers get two refund emails#
Cause: A refund executed by Resolution Desk is a normal WooCommerce refund, so WooCommerce also sends its own “Refunded order” email.
Fix: Turn off the refunded order email under WooCommerce > Settings > Emails, if you want only the Resolution Desk “resolved” email.
nginx uploads: customer photos are publicly reachable#
Symptom: The Health tab shows an “Upload folder protection” warning.
Cause: Customer photos live in wp-content/uploads/leet-rd/, behind .htaccess deny rules and random folder names. nginx does not read .htaccess.
Fix:
- Add a rule to your nginx server block:
location ^~ /wp-content/uploads/leet-rd/ { deny all; }
- Reload nginx.
- Open the Health tab and acknowledge the warning.
Photos are still streamed to staff through the plugin’s own handler, so you can keep reviewing them in the queue.
The store credit shows as a refund in Advanced Coupons#
Cause: When Resolution Desk issues store credit through Advanced Coupons for WooCommerce, ACFW records it with its own refund restoration source, so ACFW’s store credit report lists it as a refund. The Resolution Desk activity log and the order notes record it as store credit.
An exchange fails on an order paid in another currency#
Cause: Replacement prices come from the catalogue in the shop’s currency. Fix: stage a refund or store credit instead, or have a currency plugin return true from leet_rd_exchange_currency_supported.
Draft replies are flagged as unchecked#
Cause: The reply guard only understands English promise words and relative dates. A draft in another language is flagged as unchecked for you to read carefully. Customers are not affected: they always get the translated templates.
The portal does not appear, or shows an old nonce#
- Make sure the Order-help portal (shortcode) channel is on under Settings > Channels.
- Exclude the page from page caching.
- Check the Health tab for the Visitor IP warning if lookups are locked out for everyone behind a proxy.
Order-status answers have no tracking#
The Health tab warns when none of the recently completed orders has tracking data. Install a supported tracking plugin (WooCommerce Shipment Tracking, Leet Order Tracking or ShipStation), or add a reader with leet_rd_tracking_readers.
Settings did not save#
Settings are saved only when the activity log write succeeds. If the log cannot be written, the change is reverted and an error is shown. Check the database and the PHP error log.
