-
Notifications
You must be signed in to change notification settings - Fork 186
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Long story short
Hi, I am not sure if I am not sure if this is an actual bug or if I am missing something.
I am getting the error you can check in the logs section.
In my mind, as this goes through the check_response and is identified as a APIClientError, this should be caught by the retry logic and try again after some backoff, as it would make sense for a 429.
Is the retry mechanism missing this, or did I get something wrong?
If there is an actual bug, I would be happy to contribute.
Kopf version
1.38.0
Kubernetes version
1.33.5
Python version
3.9
Code
Logs
log:{"message": "Watcher for signalslistenerapplications.v1.crd.ibm.io@epm-kitt has failed: (None, None)", "exc_info": "Traceback (most recent call last):
File \"/opt/signals_listener/.venv/lib/python3.9/site-packages/kopf/_cogs/clients/errors.py\", line 148, in check_response
response.raise_for_status()
File \"/opt/signals_listener/.venv/lib/python3.9/site-packages/aiohttp/client_reqrep.py\", line 1161, in raise_for_status
raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 429, message='Too Many Requests', url='https://172.21.0.1/apis/crd.ibm.io/v1/namespaces/epm-kitt/signalslistenerapplications?watch=true&resourceVersion=2122351345'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File \"/opt/signals_listener/.venv/lib/python3.9/site-packages/kopf/_cogs/aiokits/aiotasks.py\", line 96, in guard
await coro
File \"/opt/signals_listener/.venv/lib/python3.9/site-packages/kopf/_core/reactor/queueing.py\", line 175, in watcher
async for raw_event in stream:
File \"/opt/signals_listener/.venv/lib/python3.9/site-packages/kopf/_cogs/clients/watching.py\", line 86, in infinite_watch
async for raw_event in stream:
File \"/opt/signals_listener/.venv/lib/python3.9/site-packages/kopf/_cogs/clients/watching.py\", line 201, in continuous_watch
async for raw_input in stream:
File \"/opt/signals_listener/.venv/lib/python3.9/site-packages/kopf/_cogs/clients/watching.py\", line 266, in watch_objs
async for raw_input in api.stream(
File \"/opt/signals_listener/.venv/lib/python3.9/site-packages/kopf/_cogs/clients/api.py\", line 201, in stream
response = await request(
File \"/opt/signals_listener/.venv/lib/python3.9/site-packages/kopf/_cogs/clients/auth.py\", line 50, in wrapper
response = await fn(*args, **kwargs, context=context)
File \"/opt/signals_listener/.venv/lib/python3.9/site-packages/kopf/_cogs/clients/api.py\", line 85, in request
await errors.check_response(response) # but do not parse it!
File \"/opt/signals_listener/.venv/lib/python3.9/site-packages/kopf/_cogs/clients/errors.py\", line 150, in check_response
raise cls(payload, status=response.status) from e
kopf._cogs.clients.errors.APIClientError: (None, None)", "timestamp": "2025-11-12T14:20:13.031539+00:00", "severity": "error"}
Additional information
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working