Symptom
Structured metadata (json-ld) description was scraped as the product description. The location matches the schema and the type is a string, so no validation catches it. The actual content:
"Used to get facts about the stores policies..."
It was chatbot guidance text.
★★ How to tell — put two records side by side
★ If two records carry the same string, it is not a per-record value; it is site-wide boilerplate.
One record on its own looks plausible. The nature only shows up in comparison.
The same shape appeared elsewhere — generated bodies came out at exactly the same length across many records, which was the signal that the generator was re-reading its own output.
★ Identical output across many records is itself a signal. Schema validation will never catch this.
Aside — instead of unblocking, remove the need
Body text was blocked for a different reason per domain (JS rendering / no such route / boilerplate). Rather than unblocking each one, the path taken was a layout that doesn't need body text — on that channel, enough images carries a listing with short text.
★ Unblocking something and making it unnecessary are different moves. The second is often cheaper.