paul-gauthier / aider

aider is AI pair programming in your terminal
https://aider.chat/
Apache License 2.0
19.08k stars 1.76k forks source link

Uncaught APIError in utils.py line 6586 #1700

Closed markuswolf2 closed 2 hours ago

markuswolf2 commented 2 hours ago

Aider version: 0.57.1 Python version: 3.9.19 Platform: macOS-14.6.1-arm64-arm-64bit Python implementation: CPython Virtual environment: No OS: Darwin 23.6.0 (64bit) Git version: git version 2.39.5 (Apple Git-154)

An uncaught exception occurred:

Traceback (most recent call last):
  File "default.py", line 72, in map_httpcore_exceptions
    yield
  File "default.py", line 236, in handle_request
    resp = self._pool.handle_request(req)
  File "connection_pool.py", line 216, in handle_request
    raise exc from None
  File "connection_pool.py", line 196, in handle_request
    response = connection.handle_request(
  File "connection.py", line 101, in handle_request
    return self._connection.handle_request(request)
  File "http11.py", line 143, in handle_request
    raise exc
  File "http11.py", line 113, in handle_request
    ) = self._receive_response_headers(**kwargs)
  File "http11.py", line 186, in _receive_response_headers
    event = self._receive_event(timeout=timeout)
  File "http11.py", line 224, in _receive_event
    data = self._network_stream.read(
  File "sync.py", line 126, in read
    return self._sock.recv(max_bytes)
  File "contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ReadError: [Errno 54] Connection reset by peer

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "_base_client.py", line 981, in _request
    response = self._client.send(
  File "_client.py", line 926, in send
    response = self._send_handling_auth(
  File "_client.py", line 954, in _send_handling_auth
    response = self._send_handling_redirects(
  File "_client.py", line 991, in _send_handling_redirects
    response = self._send_single_request(request)
  File "_client.py", line 1027, in _send_single_request
    response = transport.handle_request(request)
  File "default.py", line 236, in handle_request
    resp = self._pool.handle_request(req)
  File "contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "default.py", line 89, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ReadError: [Errno 54] Connection reset by peer

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "openai.py", line 907, in completion
    raise e
  File "openai.py", line 825, in completion
    self.make_sync_openai_chat_completion_request(
  File "openai.py", line 683, in make_sync_openai_chat_completion_request
    raise e
  File "openai.py", line 672, in make_sync_openai_chat_completion_request
    raw_response = openai_client.chat.completions.with_raw_response.create(
  File "_legacy_response.py", line 353, in wrapped
    return cast(LegacyAPIResponse[R], func(*args, **kwargs))
  File "_utils.py", line 274, in wrapper
    return func(*args, **kwargs)
  File "completions.py", line 704, in create
    return self._post(
  File "_base_client.py", line 1268, in post
    return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
  File "_base_client.py", line 945, in request
    return self._request(
  File "_base_client.py", line 1005, in _request
    return self._retry_request(
  File "_base_client.py", line 1083, in _retry_request
    return self._request(
  File "_base_client.py", line 1005, in _request
    return self._retry_request(
  File "_base_client.py", line 1083, in _retry_request
    return self._request(
  File "_base_client.py", line 1015, in _request
    raise APIConnectionError(request=request) from err
openai.APIConnectionError: Connection error.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "main.py", line 1419, in completion
    raise e
  File "main.py", line 1392, in completion
    response = openai_chat_completions.completion(
  File "openai.py", line 914, in completion
    raise OpenAIError(
litellm.llms.OpenAI.openai.OpenAIError: Connection error.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "aider", line 8, in <module>
    sys.exit(main())
  File "main.py", line 709, in main
    coder.run()
  File "base_coder.py", line 723, in run
    self.run_one(user_message, preproc)
  File "base_coder.py", line 760, in run_one
    message = self.preproc_user_input(user_message)
  File "base_coder.py", line 749, in preproc_user_input
    return self.commands.run(inp)
  File "commands.py", line 221, in run
    return self.do_run(matching_commands[0][1:], rest_inp)
  File "commands.py", line 196, in do_run
    return cmd_method(args)
  File "commands.py", line 235, in cmd_commit
    self.raw_cmd_commit(args)
  File "commands.py", line 249, in raw_cmd_commit
    self.coder.repo.commit(message=commit_message)
  File "repo.py", line 102, in commit
    commit_message = self.get_commit_message(diffs, context)
  File "repo.py", line 187, in get_commit_message
    commit_message = simple_send_with_retries(
  File "sendchat.py", line 44, in wrapper
    return decorated_func(*args, **kwargs)
  File "_sync.py", line 105, in retry
    ret = target(*args, **kwargs)
  File "sendchat.py", line 107, in simple_send_with_retries
    _hash, response = send_completion(**kwargs)
  File "sendchat.py", line 87, in send_completion
    res = litellm.completion(**kwargs)
  File "utils.py", line 1086, in wrapper
    raise e
  File "utils.py", line 974, in wrapper
    result = original_function(*args, **kwargs)
  File "main.py", line 2847, in completion
    raise exception_type(
  File "utils.py", line 8194, in exception_type
    raise e
  File "utils.py", line 6586, in exception_type
    raise APIError(
litellm.exceptions.APIError: litellm.APIError: APIError: OpenAIException - Connection error.
fry69 commented 2 hours ago

Thank you for filing this issue.

This looks like an error from the OpenAI API, which aider currently does not handle gracefully.

We are working on a fix for this.

Duplicate #1681