*this post will probably not be worthwhile for 99% of the normal shoemoney.com readers. But for those having the same issue it will be priceless.*

I have been working on a new twitter app for a couple months and at approximately 5pm on December 23rd 2008 (3 days ago) it all went boom.

All of my php curl (lib curl) requests started returning:

HTTP/1.1 417 Expectation Failed

and the exact html returned is:

<title>417 Expectation Failed</title>
<h1>Expectation Failed</h1>
<p>The expectation given in the Expect request-header
field could not be met by this server.</p>
<p>The client sent<pre>
Expect: 100-continue
but we only allow the 100-continue expectation.</p>

It appears Twitter started being super anal about requests being sent and in particular the http/1.1 RFC post requests.

Anyway it took be a long time searching the web and trying various things until I figured out the solution by looking at some of the lib curl compilation files.

Just add:

[php]curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘Expect:’));[/php]

and you will be fixed!

By Jeremy Schoemaker

Jeremy "ShoeMoney" Schoemaker is the founder & CEO of ShoeMoney Media Group, and to date has sold 6 companies and done over 10 million in affiliate revenue. In 2013 Jeremy released his #1 International Best selling Autobiography titled "Nothing's Changed But My Change" - The ShoeMoney Story. You can read more about Jeremy on his wikipedia page here.

76 thoughts on “Lib Curl, Twitter API & “Expect: 100-continue” PAIN and How To Fix it”
  1. I think I am now more interested in the twitter app that you have been working on for the past few months. lol What does it do or is that a secret?

  2. I know many people who will be able to use this. I haven’t really gotten into the whole Twitter thing yet but it seems like every blogger is saying how great it is so I might just have to join in on it.

    1. You and me both – I just don’t wanna be tied to my phone 24-7 personally which is why I am avoiding it

      1. I’ve also been avoiding twitter, but it seems that the mainstream pressure is going to force me to re-appraise and try to get into it!

  3. I have to agree with the above – definitely interested in learning about this new app – glad to see you found the solution – maybe the issue happened because of all of the apps being built for twitter now a days -looking forward to what you have to share.

  4. Long time reader, first time poster. I know enough about Twitter to be dangerous and I got myself banned tonight by signing up with a service called Twauter that creates auto follows. Anyway I do have a twitter app that is pretty cool called ObamaTweet at http://www.obamatweet.com/ . It pulls all Tweets with the word Obama from the Twitter DB and displays a realtime Obama River. I’m getting it ready for a big marketing push before the swearing in. Any tips would be appreciated.

  5. I’ve used the twitter api with curl as well and never had to do this, this is definitely weird.

  6. Thanks for this info my developer might need to know this, it’s all Greek to me, for a twitter widget we’re building.

  7. […] of online marketing tools, poor client retention and bad product image. Online Shopping – the Lib Curl, Twitter API & “Expect: 100-continue” PAIN and How To Fix it – shoemoney.com 12/30/2008 *this post will probably not be worthwild for 99% of the normal […]

  8. Nice error. I just use the API rather than curl, but that has its limitations. I assume you’re making requests that don’t require the user’s twitter account to be authenticated.

  9. Sorry but shoe didn’t update his blog with this news..
    Google Have Updated PageRank of every blog almost..
    My blog is a PR3 from PR0

  10. I am having to advance my programming skills to do some of the things I want to do (including API). So, I imagine I will be returning to this post someday soon.

  11. I lloked through the stuff again and sopped at the place where there is a photo of your elder daughter. The girl is so cute.She will be a doctor for sure.

  12. I guess I am not a uber geek because I have no clue what is up with that twitter. The expectation failed but it says that the 100-expect is allowed. What does that mean, crazy stuff, and we wonder if machines will ever take over the human race… sorry to be the let down, they have already.

    Mr. School Fundraising Ideas

  13. […] Dank an GetBux und ShoeMoney, denn da kommt der Fix her « Wie könnte sich der Preis eines Blogs […]

  14. I have heard of Twitter but haven’t quite gotten the whole concept why and how it is a big deal and how it can help you in your business?

  15. This is great stuff! I was having this problem exactly! When I searched for 100-continue expectation this is what I found. I added that line and then voila! It worked!

    Great job and thanks a bunch!

  16. Count me in that 1% 🙂

    We just had a similar issue with php-cgi and Nginx that took a few hours to trace. Turns out php-cgi adds 2 seconds when your POSTed data contains more than 1,000 characters and missing the Expect header.

  17. Ah, thank you so much for this! I wasn’t having this issue on my local server, but when I moved my Twitter app onto the production server I got this error. Your solution fixed it right up! Thank you, thank you, thank you!

  18. Anybody wanna help me out? I’m using VB.NET and System.Net.ServicePointManager.Expect100Continue = False doesn’t solve my problem :\


  19. pecl_http で POST を送信する際の注意点 - セサミン・ラボ says:

    […] Lib Curl, Twitter API & “Expect: 100-continue” PAIN and How To Fix it – ShoeMoney® 等を参照されると良いだろう.どうやら,Expect ヘッダが有ると,例え […]

  20. Oh, you should have done great research. Your solution works perfectly!


  21. yayy, you saved my day!
    wouldn´t have figured this out so quickly on my own.

  22. THANK YOU!!!! Struggled with this for hours until I found your post and then like magic it was fixed. THANK YOU!

  23. But for those having the same issue it will be priceless.

    Absolutly! It’s really helpful! Thanks a lot!

  24. I was using godaddy and wanted to send messages to twitter. It just failed.

    Thanks to you I got it to work. Thanks, mate!

  25. Thanks for this snippet. I just started getting this error message on a new WP plugin that I am writing, and a quick Google search led mw to your website.

    Yes it does seem that Twitter has gone a bit “anal” about things, but I guess we have to follow their rules.

    Many thanks


  26. What a planet we live in!!?! It just exhibits us all as much as the fools we are…

  27. Well, Thanks for sharing your thoughts. After reading your post I think that twitter is really one of the finest site frm where one can get lots of advantage.

  28. Definitely, what a fantastic website and instructive posts, I surely will bookmark your website.Have an awsome day!

Comments are closed.