---
title: "Troubleshooting"
url: "https://aeoultimate.com/docs/woocommerce/troubleshooting/"
description: "Fix WooCommerce product feed issues with step-by-step solutions. Find exact error messages, resolve pricing problems, and troubleshoot AI features instantly."
published: "2026-08-30T22:12:34+00:00"
modified: "2026-08-30T22:33:51+00:00"
language: "en-US"
site: "AEO Ultimate"
---

Source: https://aeoultimate.com/docs/woocommerce/troubleshooting/

AEO Ultimate for WooCommerce

# When something looks wrong

Grouped by what you are actually seeing, not by which part of the plugin produced it. If you have an exact error message, search this page for it — the messages below are the real ones, copied from the code.

## A product publishes no offer, or shows no price

This is usually correct behaviour rather than a fault. A product with no price set publishes **no offer at all**, deliberately — an offer claiming the item costs zero is worse than no offer, and Google treats it as a feed error.

Check in this order:

01

The product has a price. For a variable product, at least one variation needs its own price — otherwise there is no low/high range to publish as an `AggregateOffer`.

02

The product is published, not draft or private.

03

Open the **Products Dashboard**. It walks your whole catalogue and names exactly what each product is missing, rather than making you check them one at a time.

If a price comes from an extension — Bookings, Subscriptions, Bundles — you may see **“It is not answering the filter we use to read real prices back, so we cannot tell what it charges.”** That extension is not exposing a price through WooCommerce’s standard filters. Those products publish a “From” price or a range rather than a definite price their own page would contradict.

## Merchant Center says a promotion cannot be sent

The message

“Google now requires a promotions data source before a promotion can be sent, and this account has none.”

This is a Google-side requirement, not a plugin limitation. Create the data source in Merchant Center under **Data sources**, then retry. Until it exists, Google rejects promotion submissions from any tool.

Related: a coupon that **“cannot be described honestly”** has rules that do not map to a truthful price specification — a condition Google would reject or that would misrepresent the discount. The Coupons tab lists every one with its specific reason. **“Expired. Its end date has already passed”** is working as intended.

## An AI action failed

AI features use a key you supply, so failures are nearly always about the key, the provider or the response — not the plugin. The exact messages and what each one means:

“OpenAI rate limit reached”

Provider throttling. Wait and retry, or raise your limit with them

“The AI returned an empty description”

Usually too little source content. Add product detail and retry

“This WordPress AI Client version cannot generate text”

The AI Client library needs updating — a WordPress-side dependency

“The generated image could not be decoded / downloaded”

Truncated response, or your host blocked the fetch. Retry once

“Could not add the image to the media library”

Filesystem permissions on wp-content/uploads

“Could not confidently match a Google Product Category”

Deliberate — set it by hand rather than publish a guess

Because you pay your provider directly, an exhausted balance or spend cap on their side usually surfaces here as a generic failure. Check the balance in your own account before assuming the plugin is at fault.

## Admin screens are blank, or jobs stop halfway

Almost always PHP memory. The plugin checks this and warns you explicitly:

Critical

“PHP memory_limit is [value]. WP 7.0 AI features combined with active AEO agent querying will cause silent memory exhaustion on this host.”

The word that matters there is **silent** — PHP does not always announce running out of memory. It stops, and you get a blank screen or a job that ends early with no message. If you see a white admin page during a bulk operation, suspect this first.

**512 MB or more** is recommended for AI features on WordPress 7.0. Add to `wp-config.php`:

```
define( 'WP_MEMORY_LIMIT', '512M' );
```

If that has no effect, your host caps it above WordPress and you will need to ask them to raise it.

## Content-Signal headers or AI crawler rules are not appearing

A physical `robots.txt` file on disk always wins over WordPress’s dynamic one, so nothing the plugin adds will show up. The plugin says so directly: *“if your SEO plugin writes a physical robots.txt file, the Content-Signal directive cannot be added automatically.”*

Two options. Use the **Inject into robots.txt** action to write the directive into the physical file, or delete the physical file so WordPress serves robots.txt dynamically. Deleting cannot be undone — copy anything custom out of it first, and remember your SEO plugin may simply recreate it.

## “You do not have permission to access this page”

The AEO screens require a capability your role does not have. An administrator can grant access per role — check the roles and access settings rather than adding someone as a full administrator, which is the usual over-correction.

## I regenerated an API key and verification broke

Expected. *“API key regenerated. Your old key file URL is no longer valid — search engines will re-verify on the next submission.”* Nothing to fix; the next submission re-verifies. Do not regenerate repeatedly while waiting, as that restarts the cycle.

Similarly, when an OAuth client is created you are told **the secret will not be shown again.** If you did not save it, delete that client and create a new one — the secret genuinely cannot be recovered.

## Both AEO plugins are installed — which one publishes?

If AEO Ultimate for WooCommerce is active alongside the main WordPress plugin, **the WordPress plugin stands down automatically** for commerce output so nothing is published twice. You do not need to disable anything by hand, and seeing the WordPress plugin’s commerce screens go quiet is the expected result, not a fault.

WooCommerce’s own duplicate Product and breadcrumb markup is suppressed too — but only with your one-click consent, so until you give it you may legitimately see two Product blocks in a validator.

## An audit or scan failed

**“Audit failed. Check server logs”** means the failure happened outside anything the plugin can explain — a timeout, a fatal error, or a host limit. **“(%d pages could not be scanned)”** is partial success: the rest completed, and those pages were unreachable or timed out individually.

**“Request failed or timed out. PageSpeed can take up to a minute”** is Google’s API being slow, not a bug. Retry before investigating.

## Nothing here matches my problem

Then the documentation has a gap and I would rather know. Send the exact message, the page it happened on and what you expected — that is enough to reproduce almost anything.