RSS feed errors are their own category because a feed is machine-read: a single stray character invalidates the whole file. Yandex’s reference explains why and gives a fixing procedure per error.
Why feeds break
A feed must satisfy strict requirements — data format, mandatory fields, limits on string and URL length, XML encoding and syntax. Yandex names the small things that kill a file: an extra quotation mark, a wrong date format, an over-long URL.
The parsing errors
- Malformed attributes — values must be quoted, quotes must match, attributes must not overlap or nest wrongly, special characters must be escaped (
&rather than a bare ampersand), and no element may repeat an attribute name. - Missing quotation mark — every opening quote needs its closing one. Yandex’s practical hint: if the file was hand-edited, look at what changed last.
- Incorrectly redefined HTTP header — duplicated or wrongly set headers in the feed.
- Improperly closed CDATA — each section runs from
<![CDATA[to]]>, and a stray]inside can close it early. That is the subtle one, because the file looks correct and the parser disagrees. - Invalid character — a character outside the range the format permits.
The working method Yandex prescribes
- Find the error code.
- Read what it means.
- Follow the steps.
- Fix all reported errors the same way.
- Submit for re-check.
- Apply the prevention advice so it does not recur.
The recurring instruction worth generalising
Nearly every entry ends with the same two suggestions: run the file through an XML or YML validator, and if the feed is generated programmatically, check the code that generates it. That is the real fix. A feed corrected by hand breaks again on the next publish; a generator corrected once stops producing the fault.
How we apply this
We treat every feed error as a generator bug rather than a file to patch, which is what Yandex effectively recommends. The one that costs the most time is the prematurely closed CDATA section, because the file reads correctly to a human. Running the feed through a validator on every build — not only when something is reported — is a five-minute pipeline addition that removes this whole category.
Related services