Sam Ruby pointed out HTTP 410 GONE support in feed readers or rather the lack thereof. He links to the list of User-Agent strings that continue to request the feed that is gone. One of the entries points at the Windows RSS Platform as an "offender":

Windows RSS Platform/1.0 (MSIE 7.0; Windows NT 5.1)

It's listed with 282 hits. At first I was surprised to see the Windows RSS Platform in that list since we specifically added 410 GONE support. But then it dawned on me: That's not the Windows RSS Platform!

Well, it is, but it isn't. The above User-Agent string is the one from the Beta 2 Preview release (Jan 2006) of the Windows RSS Platform. The User-Agent string changed in Beta 2 (April 2006) to the final string:

Windows-RSS-Platform/1.0 (MSIE 7.0; Windows NT 5.1)

I described the string here a year ago. See the difference? The dashes instead of spaces! Why the change? Well it turns out that the product token of the User-Agent string may not include spaces, since spaces delimit product tokens and comments.

So it turns out that there are still people running the Beta 2 Preview version of the Windows RSS Platform, or some application is "faking" the User-Agent string.

Either way, I just verified that the RTM version of the Windows RSS Platform handles 410 GONE correctly. I used the following Powershell script:

$fm = new-object -comobject "Microsoft.FeedsManager"

$feed = $fm.rootfolder.CreateFeed("gone","http://www.intertwingly.net/blog/index.rss")

$feed.SyncSetting

$feed.Download()

$feed.SyncSetting

When you run it you will see that the SyncSetting property is changed from 0 to 2 after the Download() call. Note that the SyncSettings are defined as:

typedef enum {     

FSS_DEFAULT = 0,     

FSS_INTERVAL = 1,     

FSS_MANUAL = 2

} FEEDS_SYNC_SETTING;

FSS_DEFAULT - Use the system-defined DefaultInterval value.

FSS_INTERVAL - Use the Interval value defined by the feed.

FSS_MANUAL - Do not automatically update the feed. Use Download to manually update the feed.

which means that the feed initially uses the default sync interval to get updated. Upon download, the setting is changed to Manual since a feed that is GONE should no longer be updated automatically.

- Walter vonKoch