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

Reply via email to