#2471·doccano

Download stage of export should not download into browser memory

Author: rsnymanCreated Feb 13, 2026Updated Aug 24, 2026

I see this problem all over the place in the issues, but the root of the problem is how the download is actually performed.

See:

How to reproduce the behaviour

  1. Have a large dataset (I have an export that hit 255MB before it crashed curl)
  2. Perform an export
  3. Watch in your developer console as the frontend repeatedly checks the backend for task status
  4. Watch as the now-completed export is downloaded into browser memory
  5. Watch your browser die due to the memory load, and take your computer down with it

Your Environment

  • Operating System: Linux/Mac/Windows on client side, Kubernetes on server side
  • Python Version Used: Whatever is in the Docker image.
  • When you install doccano:
  • How did you install doccano (Heroku button etc): Argo CD + Helm chart in K8s

What Causes the Issue

The JavaScript downloads the file into the browser's memory, and then performs a "click" on a link which points to an in-memory Blob object. See apiDownloadRepository.ts, line 16.

This works perfectly well for small datasets (i.e. less than 1MB), but as soon as you hit bigger datasets this causes all sorts of problems.

What Should Happen Instead

Rather than download the entire file into a Blob object in the browser's memory, the app should simply redirect the user to the download link itself and let the browser handle the download.