On wondering why my feed wasn't updating at LiveJournal, I discovered that it was reporting a parse error:
Last checked: 2009-11-14 16:05:43 (Parse error)
Error Message: RSS parser error: mismatched tag at line 100, column 115, byte 3647
Next check: 2009-11-14 19:07:43
By fetching that particular version with wget and going to line
100, column 115 at the time, I determined it was concerned about an
img
tag, which wasn't closed. This was a problem because I
was using the Atom
feed format (RFC4287, which
embeds entries in XTHML format. Since
my "blog" software, ikiwiki pretty much just
embeds whatever the user creates (after
Markdown translation;
Markdown syntax)
this means it is up to the user to create valid XHTML entries,
especially when embedding (X)HTML directly into the file (such as the
img
tag).
Fortunately there are some feed valiators that can be used, independently of LiveJournal, to check (on demand) that the feed format is valid:
feedvalidator.org Beta Validator (which appears to use the same backend as the W3C service)
Validome feed validator (which seems to generate the most useful error messages)
Between them they pointed out two additional errors, one mis-formed close tag (missing >) in another post in the same feed, and the MIME type for the feed being incorrect. The mime type should be "application/atom+xml"), which I fixed by configuring Apache with:
# Force .atom files to be served as application/atom+xml
# Recommended by: http://www.validome.org/rss-atom/validate
AddType application/atom+xml atom
After that all three validators report it as (currently) valid Atom 1.0 syntax. Unfortunately whether or not it stays valid depends on the contents of the entries. The validators listed above are definitely worth keeping in mind if there are other feed issues reported (which aren't due to LiveJournal breaking feed imports for days at a time again).