Say what a site sent when it is not XML at all #2

Closed
opened 2026-09-14 13:58:17 -07:00 by rays · 0 comments
Owner

doghouse (http://feeds2.feedburner.com/thedoghousediaries/feed) answers 200, text/xml, with a 35-byte body: Unable to establish a DB connection. The publisher's database is down. parse() reports "not RSS (reached end of input without finding a complete channel) and not Atom (unexpected end of input)", which hides the one sentence that says what happened, and ipx has never stored an entry from this feed.

explain_failure returns None for garbled feeds on purpose (its doc comment says why), and that is right for broken XML. A body with no markup at all is a different case: the site sent an error message instead of the feed. When the body does not start with < (after whitespace and a BOM), have parse() say the site sent "<first line, capped>" instead of a feed, and have explain_failure flag it as the publisher's problem. Leave malformed XML as it is. (src/feed.rs:262, src/feed.rs:107)

Found 2026-09-14: 76 of 1,102 feeds carried a stored error; everything else with a subscriber classified cleanly through explain_failure.

`doghouse` (`http://feeds2.feedburner.com/thedoghousediaries/feed`) answers 200, `text/xml`, with a 35-byte body: `Unable to establish a DB connection`. The publisher's database is down. `parse()` reports "not RSS (reached end of input without finding a complete channel) and not Atom (unexpected end of input)", which hides the one sentence that says what happened, and ipx has never stored an entry from this feed. `explain_failure` returns `None` for garbled feeds on purpose (its doc comment says why), and that is right for broken XML. A body with no markup at all is a different case: the site sent an error message instead of the feed. When the body does not start with `<` (after whitespace and a BOM), have `parse()` say `the site sent "<first line, capped>" instead of a feed`, and have `explain_failure` flag it as the publisher's problem. Leave malformed XML as it is. (`src/feed.rs:262`, `src/feed.rs:107`) Found 2026-09-14: 76 of 1,102 feeds carried a stored error; everything else with a subscriber classified cleanly through `explain_failure`.
rays closed this issue 2026-09-14 14:33:15 -07:00
rays added the bug label 2026-09-17 13:32:58 -07:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rays/ipodderx-rs#2