Hello @yuikns, Thanks a lot for the reply! I now had the same issue again:
LLM provider error: Error code: 429 - {‘error’: {‘message’: “We’re receiving too many requests at the mo
ment. Please wait a moment and try again.”, ‘type’: ‘rate_limit_reached_error’}}
I use the curl to the route and i get:
{"user": {...},
"usage": {"limit": "100",
"used": "33",
"remaining": "67",
"resetTime": "2026-03-08T09:20:45.248979Z"},
"limits": [
{"window":
{"duration": 300,
"timeUnit": "TIME_UNIT_MINUTE"},
"detail":
{"limit": "100",
"used": "2",
"remaining": "98",
"resetTime": "2026-03-07T15:20:45.248979Z"}}]}
So i am not hitting any limit. If it can help i notice this happens only when i give kimi the CreateSubagent “tool“ it did create a couple of them but from the output seems at max 6/7, nothing close to the 30 concurrency limit mentioned in the doc. Maybe there is something in this CreateSubagent ? for now i will avoid using it because so far i never i had any other rate limiting issue when this is disabled.
for reference i have only 1 kimi session open and the output is:
• Used Task (...)
• 8 more tool calls …
• Used CreateSubagent
• Used Task (...)
• Used Task (...)
• Used Task (...)
• Used Task (...)
• 3 more tool calls …
• Used Task (...)
• Used Task (...)
• Used Task (...)
• Used Task (...)
• Used Task (...)
• Used Task (...)
• Used Task (...)
• Used Task (...)
Failed to run subagent
• Used Task (...)
• 5 more tool calls …
• Used ReadFile
• Used ReadFile (...)
• Used ReadFile (...)
• Used ReadFile
so maybe there is something i do not understand about this concurrency limit, maybe let me know if that’s the case.
For your reference, here is the stack trace i see after aborting the session. I hope this can help:
Interrupted by user
Unhandled exception in event loop:Exception NonePress ENTER to continue…
Unhandled exception in event loop:Exception NonePress ENTER to continue…
/exitBye!ERROR:asyncio:unhandled exception during asyncio.run() shutdowntask: <Task finished name=‘Task-16248’ coro=<KimiSoul.run() done, defined at […]/site-packages/kimi_cli/soul/kimisoul.py:231> exception=APIStatusError(‘Error code: 429 - {‘error’: {‘message’: “We’re receiving too many requests at the moment. Please wait a moment and try again.”, ‘type’: ‘rate_limit_reached_error’}}’)>Traceback (most recent call last):File “[…]/site-packages/kosong/chat_provider/kimi.py”, line 165, in generateresponse = await self.client.chat.completions.create(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…<6 lines>…)^File “[…]/site-packages/openai/resources/chat/completions/completions.py”, line 2678, in createreturn await self._post(^^^^^^^^^^^^^^^^^…<49 lines>…)^File “[…]/site-packages/openai/_base_client.py”, line 1797, in postreturn await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File “[…]/site-packages/openai/_base_client.py”, line 1597, in requestraise self._make_status_error_from_response(err.response) from Noneopenai.RateLimitError: Error code: 429 - {‘error’: {‘message’: “We’re receiving too many requests at the moment. Please wait a moment and try again.”, ‘type’: ‘rate_limit_reached_error’}}
The above exception was the direct cause of the following exception:
Traceback (most recent call last):File “[…]/site-packages/kimi_cli/soul/kimisoul.py”, line 255, in runawait self._turn(user_message)File “[…]/site-packages/kimi_cli/soul/kimisoul.py”, line 269, in _turnreturn await self._agent_loop()^^^^^^^^^^^^^^^^^^^^^^^^File “[…]/site-packages/kimi_cli/soul/kimisoul.py”, line 403, in _agent_loopstep_outcome = await self._step()^^^^^^^^^^^^^^^^^^File “[…]/site-packages/kimi_cli/soul/kimisoul.py”, line 473, in _stepresult = await _kosong_step_with_retry()^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File “[…]/site-packages/tenacity/asyncio/init.py”, line 189, in async_wrappedreturn await copy(fn, *args, **kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File “[…]/site-packages/tenacity/asyncio/init.py”, line 111, in calldo = await self.iter(retry_state=retry_state)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File “[…]/site-packages/tenacity/asyncio/init.py”, line 153, in iterresult = await action(retry_state)^^^^^^^^^^^^^^^^^^^^^^^^^File “[…]/site-packages/tenacity/_utils.py”, line 99, in innerreturn call(*args, **kwargs)File “[…]/site-packages/tenacity/init.py”, line 420, in exc_checkraise retry_exc.reraise()~~~~~~~~~~~~~~~~~^^File “[…]/site-packages/tenacity/init.py”, line 187, in reraiseraise self.last_attempt.result()~~~~~~~~~~~~~~~~~~~~~~~~^^File “/usr/local/lib/python3.13/concurrent/futures/_base.py”, line 449, in resultreturn self.__get_result()~~~~~~~~~~~~~~~~~^^File “/usr/local/lib/python3.13/concurrent/futures/_base.py”, line 401, in __get_resultraise self._exceptionFile “[…]/site-packages/tenacity/asyncio/init.py”, line 114, in callresult = await fn(*args, **kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^File “[…]/site-packages/kimi_cli/soul/kimisoul.py”, line 467, in _kosong_step_with_retryreturn await self._run_with_connection_recovery(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…<3 lines>…)^File “[…]/site-packages/kimi_cli/soul/kimisoul.py”, line 609, in _run_with_connection_recoveryreturn await operation()^^^^^^^^^^^^^^^^^File “[…]/site-packages/kimi_cli/soul/kimisoul.py”, line 450, in _run_step_oncereturn await kosong.step(^^^^^^^^^^^^^^^^^^…<6 lines>…)^File “[…]/site-packages/kosong/init.py”, line 158, in stepresult = await generate(^^^^^^^^^^^^^^^…<6 lines>…)^File “[…]/site-packages/kosong/_generate.py”, line 53, in generatestream = await chat_provider.generate(system_prompt, tools, history)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File “[…]/site-packages/kosong/chat_provider/kimi.py”, line 175, in generateraise convert_error(e) from ekosong.chat_provider.APIStatusError: Error code: 429 - {‘error’: {‘message’: “We’re receiving too many requests at the moment. Please wait a moment and try again.”, ‘type’: ‘rate_limit_reached_error’}}