If you’re getting this error with Twitterlicious:
System.Net.WebException: The remote server returned an error: (417) Expectation Failed.
Twitterlicious seems to be less affected than other clients: it can still get your main timeline but you can’t update your status. The stated workaround doesn’t work, so for now all .NET Twitter applications won’t work with the Twitter API.
It’s awfully nice of Twitter to make this breaking change to their API during the holiday season, and even though they know about this bug, they haven’t rolled back the changes they made. All sane .NET developers will use the
HttpWebRequest class to query the API, rather than reinventing the wheel themselves. But as far as I can see, the only way to work around this is to extend the
HttpWebRequest class yourself to modify the headers it sends, or handle the entire thing yourself.
This change should never have been made to the API in the first place. Whatever is the correct behaviour according to HTTP specification, whatever Twitter adopted in the first place, they should keep. APIs are supposed to be very stable, you can add new features to APIs, but the existing functions should be kept the same. Twitter’s casual attitude to their API not only shows a lack of respect for developers using their API, but also a lack of experience or expertise in the design and implementation of their entire platform.
I will continue to update Twitterlicious 2 for the foreseeable future, but I may have to re-evaluate the amount of time I’m going to spend on the next major revision.