HTTP error 400 with Twitter Rev 61
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Gwibber |
Won't Fix
|
Undecided
|
Ryan Paul |
Bug Description
Gwibber won't fetch twitter updates, nor jaiku. If you disable receiving from twitter, however, it will fetch jaiku. It gives a 400 error, bad request.
todd@tantalus:
Exception in thread Thread-1:
Traceback (most recent call last):
File "threading.py", line 460, in __bootstrap
self.run()
File "threading.py", line 440, in run
self.
File "/home/
self.data = list(self.
File "/home/
for message in client.
File "/home/
for data in self.get_data():
File "/home/
"http://
File "/home/
url, data, {"Authorization": self.get_
File "urllib2.py", line 124, in urlopen
return _opener.open(url, data)
File "urllib2.py", line 387, in open
response = meth(req, response)
File "urllib2.py", line 498, in http_response
'http', request, response, code, msg, hdrs)
File "urllib2.py", line 425, in error
return self._call_
File "urllib2.py", line 360, in _call_chain
result = func(*args)
File "urllib2.py", line 506, in http_error_default
raise HTTPError(
HTTPError: HTTP Error 400: Bad Request
Changed in gwibber: | |
status: | New → Confirmed |
Twitter typically returns an HTTP 400 error when a user exceeds the rate limit for refreshes. I think the current limit is 70 requests in a 60 minute time period. Try disabling Twitter refreshes for a while and see if it works again later.
This report encompasses two issues. The first issue is obviously that Gwibber needs to provide an appropriate notification to the user rather than just dumping the error message to the console and hanging. I'll probably create a separate bug report for that myself because that's a problem that is broader than just HTTP 400 errors.
The second issue, which we can address in this bug report, is that Gwibber should make it impossible for users to exceed the rate limit. I've more or less tried to do that by making the preference dialog minimum setting one refresh per minute. If Gwibber is doing more than that, it's definitely a bug.
Were you perhaps running two instances of the client at once? Or were you running a second client simultaneously at the same time? Or performing lots of additional refresh operations? Also, what is your current interval setting?
If there are no external conditions that could potentially be responsible, I think the problem would mostly likely be a glitch with the way that the timer is implemented. If you can rule out the external conditions, I'll add some extra debug code to make it easier to track/visualize refreshes and that might provide some insight into whether or not there are runaway timer problems.
Thanks! Sorry for the long comment, it's mostly so I will remember all of this later. ;-)