You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On current master (1a3f101), retry_on_server_errors_timeout_or_quota_issues_filter raises JSONDecodeError when an apitools HTTP 403 response body is not JSON. That replaces the original HttpError in decorated calls, including BigQuery paths that use this retry filter.
Minimal reproduction with the Python SDK and its GCP dependencies:
Actual: JSONDecodeError: Expecting value: line 1 column 1 (char 0). Expected: False, so the retry decorator re-raises the original non-retryable HttpError. The 403 branch already treats missing or malformed structured reasons as non-retryable; its exception handler catches KeyError, IndexError, and TypeError, but misses ValueError/JSONDecodeError from json.loads.
I reproduced this with google-apitools 0.5.35 and google-api-core 2.42.0 on Python 3.14.3. No live GCP project or credentials were used. I plan to add a regression test and narrow fix.
Issue Priority
Priority: 2 (default / most bugs should be filed as P2)
Activity
Gaurav598 commentedon Oct 16, 2026
.take-issue