Learn how to make the most out of the Dropbox Community here 💙!

Forum Discussion

mikemcrae25's avatar
mikemcrae25
New member | Level 2
2 years ago

Dropbox API: Connection broken: IncompleteRead

Hi everyone,

I am using the API to zip and download folders each with 1000 .jpegs in them (approx 4GB - 5GB). Historically this has been no issue. In the last week however, I have started receiving connection timeouts. The error reads: "Connection broken: IncompleteRead", followed by a file specific: "(2013265920 bytes read, 2153556605 more expected)', IncompleteRead(2013265920 bytes read, 2153556605 more expected))".

 

I have tried downloading on multiple devices, using different Dropbox accounts and in various locations with different IP addresses and internet connections. The error is occuring around 60% of the time. This means that the downlaod process is taking dramatically longer than it should. As I mentioned, this was not an issue until recently. 

Any help greatly appreciated. 
M

  • denseishin's avatar
    denseishin
    New member | Level 1

    I'm facing a similar problem, but in my case I'm merely downloading a very large file (~125 GB). It usually crashes between 58000000000 - 49000000000 bytes read.

    • DB-Des's avatar
      DB-Des
      Icon for Dropbox Engineer rankDropbox Engineer

      Hi denseishin 

      I'll be happy to look further into this issue for you, please reply with:

      • the name and version number of the platform and SDK/library you are using, if any
      • the steps to reproduce the issue, including relevant code snippet(s), but don't
      • include any access or refresh token(s)
      • the full text of any error or unexpected output

       

      Could you also confirm if requests are failing after a specific amount of time? And if so, how long is that?

      • denseishin's avatar
        denseishin
        New member | Level 1

        Here's a traceback.

        INFO:redacted_module:2025-02-18 16:53:13.153338+00:00: Downloading REDACTED
        INFO:dropbox:Request to files/download
        ERROR:redacted_module:('Connection broken: IncompleteRead(55015292051 bytes read, 78479874614 more expected)', IncompleteRead(55015292051 bytes read, 78479874614 more expected))
        Traceback: Traceback (most recent call last):
          File "/path/to/.venv/lib/python3.8/site-packages/urllib3/response.py", line 748, in _error_catcher
            yield
          File "/path/to/.venv/lib/python3.8/site-packages/urllib3/response.py", line 894, in _raw_read
            raise IncompleteRead(self._fp_bytes_read, self.length_remaining)
        urllib3.exceptions.IncompleteRead: IncompleteRead(55015292051 bytes read, 78479874614 more expected)
        
        The above exception was the direct cause of the following exception:
        
        Traceback (most recent call last):
          File "/path/to/.venv/lib/python3.8/site-packages/requests/models.py", line 820, in generate
            yield from self.raw.stream(chunk_size, decode_content=True)
          File "/path/to/.venv/lib/python3.8/site-packages/urllib3/response.py", line 1060, in stream
            data = self.read(amt=amt, decode_content=decode_content)
          File "/path/to/.venv/lib/python3.8/site-packages/urllib3/response.py", line 977, in read
            data = self._raw_read(amt)
          File "/path/to/.venv/lib/python3.8/site-packages/urllib3/response.py", line 902, in _raw_read
            self._fp.close()
          File "/usr/lib/python3.8/contextlib.py", line 131, in __exit__
            self.gen.throw(type, value, traceback)
          File "/path/to/.venv/lib/python3.8/site-packages/urllib3/response.py", line 772, in _error_catcher
            raise ProtocolError(arg, e) from e
        urllib3.exceptions.ProtocolError: ('Connection broken: IncompleteRead(55015292051 bytes read, 78479874614 more expected)', IncompleteRead(55015292051 bytes read, 78479874614 more expected))
        
        During handling of the above exception, another exception occurred:
        
        Traceback (most recent call last):
          File "/path/to/customscript.py", line 104, in _process_msg
            self._work_callback(body)
          File "/path/to/anothercustomscript.py", line 59, in download
            metadata = self.dbx.files_download_to_file(str(dl_path), dbx_path)
          File "/path/to/.venv/lib/python3.8/site-packages/dropbox/base.py", line 1459, in files_download_to_file
            self._save_body_to_file(download_path, r[1])
          File "/path/to/.venv/lib/python3.8/site-packages/dropbox/dropbox_client.py", line 687, in _save_body_to_file
            for c in http_resp.iter_content(chunksize):
          File "/path/to/.venv/lib/python3.8/site-packages/requests/models.py", line 822, in generate
            raise ChunkedEncodingError(e)
        requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(55015292051 bytes read, 78479874614 more expected)', IncompleteRead(55015292051 bytes read, 78479874614 more expected))

        It seems to repeat after almost exactly one hour

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    Thanks for the report. Can you let me know:

    • Are you referring to using the /2/files/download_zip endpoint?
    • Does it always fail after 2013265920 bytes, or does that number vary?
    • Does it always fail after a specific amount of time? If so, how long is that?

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.5,972 PostsLatest Activity: 4 hours ago
366 Following

If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.

For more info on available support options for your Dropbox plan, see this article.

If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!