Hi Idan, Thank you very much for your detailed bug report. We're working on identifying the underlying cause and hope to have a fix out for this next week.
Thanks, @episod <http://twitter.com/intent/user?screen_name=episod> - Taylor Singletary On Tue, Jul 5, 2011 at 12:41 AM, Idan Gazit <i...@gazit.me> wrote: > *Full bug report is here: https://gist.github.com/1064338* > > > Summary: > > The Twitter API returns malformed JSON for some valid requests. > > I discovered this while attempting to fetch all of my list memberships via > the API. The issue is present regardless of authentication. It occurs 100% > of the time, and has persisted for over twelve hours. I have reproduced it > for multiple users. > > Note that the response does not indicate any error condition. The > transaction completes successfully, but the payload is malformed. > > It seems that any user with enough lists will eventually have a page > returned containing this bug. I've located it on the first two users I > tried, which is my own account (@idangazit ~120 listed) and that of Jacob > Kaplan-Moss (@jacobian, ~500 listed), founder of the Django web framework. > > The offending queries: > > These are two examples: > > > http://api.twitter.com/1/idangazit/lists/memberships.json?cursor=1336796671888485791 > > > http://api.twitter.com/1/jacobian/lists/memberships.json?cursor=1343747472518328819 > > Note that these are literally the first two users I inspected. I imagine > this bug affects anybody with a sufficient number of lists. I have not > encountered the issue in any other API call, but I haven't looked very hard, > either. > > All of the following applies to my account, but is equally reproducible for > @jacobian, albeit with different values. > > Starting with cursor=-1, the following (stable) progression of next_cursor > values > lead to the broken query result: > > - 2nd: 1370876429079454131 > - 3rd: 1363944001883709517 > - 4th: 1352913498669071334 > - 5th: 1336796671888485791 > > Each of the requests leading up to the offender return well-formed JSON. > > The problem is a superfluous "empty value" at the very end of the lists > value, more easily seen on line 956 of the pretty-printed JSON attached to > this gist. Pasting the JSON into a validity checker like > http://jsonlint.com handily points out the invalid serialization. > > Interestingly, the developer console in Twitter for Mac munges the response > to replace the trailing comma with "null", thereby making it valid JSON > (screenshot:http://cl.ly/1q072g380B0P3g213t3e). Regardless, the bytestream > from the server contains invalid JSON. > > > Raw and pretty-printed dumps of the transaction are available in the gist > linked at the top of this post. > > > Thanks! > > Idan (@idangazit) > > -- > Twitter developer documentation and resources: https://dev.twitter.com/doc > API updates via Twitter: https://twitter.com/twitterapi > Issues/Enhancements Tracker: > https://code.google.com/p/twitter-api/issues/list > Change your membership to this group: > https://groups.google.com/forum/#!forum/twitter-development-talk > -- Twitter developer documentation and resources: https://dev.twitter.com/doc API updates via Twitter: https://twitter.com/twitterapi Issues/Enhancements Tracker: https://code.google.com/p/twitter-api/issues/list Change your membership to this group: https://groups.google.com/forum/#!forum/twitter-development-talk