zulip / python-zulip-api

Python library for the Zulip API.
https://zulip.com/api/
Apache License 2.0
355 stars 357 forks source link

Python REST API: Fail fast if code is either "UNAUTHORIZED" or "BAD_REQUEST" #783

Open showell opened 1 year ago

showell commented 1 year ago

The Python REST API has aggressive retry logic if the underlying call to the server in call_on_each_event does not succeed. This retry logic can obscure obvious problems such as somebody having an out-of-date API key or somebody not supplying the correct type of narrow arguments.

There are more details here: https://chat.zulip.org/#narrow/stream/137-feedback/topic/api.20client.20silent.20failure

You will want to discuss the best approaches on Zulip before proceeding, but the basic idea is to look for "UNAUTHORIZED" or "BAD_REQUEST" in the code field that comes back from the server, and if you see those, you should immediately have the function either raise an Exception or somehow make it clear to the API author that they need to fix the problem.

showell commented 1 year ago

In particular, it's probably a good idea to mimic what mobile does here: https://chat.zulip.org/#narrow/stream/137-feedback/topic/api.20client.20silent.20failure/near/1582288

There may be some subtle differences for what the Python API does, but the overall philosophy should be the same.

codewithnick commented 8 months ago

@showell is this the same issue as #533 ?, if we can detect wrong credentials this will be solved as well

codewithnick commented 8 months ago

@timabbott can you please help me with this, the issue #533 looks like the root cause , also i am unable to claim that issue