plotly / plotly/dash

Sending large tiff files through `send_file` causes the callback to hang indefinitely

Open
#3,146 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug P2
Dominant language
Python
Stars
24.4k
Forks
2.3k
Avg merge
2d 7h
Merged PRs (30d)
13

Description

  • replace the result of pip list | grep dash below
dash                          2.18.2
dash-ag-grid                  2.3.0
dash-auth                     2.0.0
dash-bio                      1.0.2
dash-bootstrap-components     1.4.1
dash_canvas                   0.1.0
dash-core-components          2.0.0
dash_daq                      0.5.0
dash-draggable                0.1.2
dash-extensions               1.0.1
dash-google-auth              0.1.2
dash-html-components          2.0.0
dash-mantine-components       0.12.1
dash-table                    5.0.0
dash-testing-stub             0.0.2
dash_tour_component           0.0.2
dash_uploader                 0.7.0a1

  • if frontend related, tell us your Browser, Version and OS

    • OS: [e.g. iOS] Linux
    • Browser [e.g. chrome, safari] Chrome
    • Version [e.g. 22] 131.0.6778.204 (64-bit)

Describe the bug

Our dash application enables users to generate multiplexed channel images and export them as tiff. The export is handled through dcc.send_file. This routinely works for files up to 100-200mb in size, but for larger tiffs such as 400-500mb, the callback gets stuck when sending the file. By checking the temp cache where the tiff is initially written, I can see that the send_file function is causing the delay, as the tiff has already been written to a temporary location.

Expected behavior

Considering that sending a 100 mb tiff through with send_file typically takes 3-4 seconds, I would expect the larger 500mb tiff to take approximately a linear amount of time proportionally to complete.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the dcc.send_file entry point and reproduce the callback with TIFF files in the reported 100–500 MB range, checking the temporary cache and transfer timing. Done means large files complete instead of hanging indefinitely, with behavior that scales roughly with file size.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.