I haven’t had much trouble with del.icio.us before. My little epiphany plugin has worked fine. The two utility programs I wrote to test it (one makes a backup of all your bookmarks on del.icio.us the other restores them) worked fine too. Now all of a sudden it seems it’s all going downhill. A few days ago I received an email from a user saying that syncing failed for him, he got error code 500. I had never received a 500 and the API documentation doesn’t mention it either.
Short interlude here. del.icio.us asks of developers that programs using the del.icio.us API wait at least 1 second between requests. Otherwise requests will be throttled by responding with error code 503.
So, guessing a little I made my use of the API a little less aggressive. I waited a second for every request, not only after having been throttled. That solved the problem. All’s well again, right? No!!!
Yesterday I was playing around a bit with epilicious again. Moving to darcs and some refactoring. To test my changes I cleaned out my del.icio.us account using delbackup. It failed with a code 500. So, I modified the code, treating 500 in the same way as 503—wait a second. Then I received a 999 and I was locked out from del.icio.us and asked to “hold off for a few minutes and try again later, in a gentler fashion”. WTF?
I modified the code again, waiting 2 seconds for 503, 10 seconds for 500, and 15 seconds for 999. Then I waited for the lock-out to end and I tried again. Locked out again! Tiring!
So, now I’ve modified the code again, now waiting 2 seconds before each request, 2 seconds if I ever get a 503, 10 seconds for a 500, and 15 seconds if I get a 999.
Now I’m instead waiting an awfully long time to get something done, and what happens then? I get locked out since I’m obviously not waiting long enough after receiving a 999.
I am clearly waiting long enough between requests! Has del.icio.us introduced some new arbitrary, undocumented limitation on using the API?
If anyone knows anything that I could stick as an option next to using del.icio.us I would love to hear about it. Two requirements:
- Web API, preferably as easy as del.icio.us API (even better, a compatible API)
- Use https for connections
Dear lazyweb, any suggestions?