lablup / lablup/backend.ai-webui

Folder explorer: file download does nothing, for both a single row and a multi-row selection

Open
#9,652 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
133
Forks
81
Avg merge
1d 11h
Merged PRs (30d)
344

Description

Reported by Jongeun Lee while reviewing the FR-1564 dev server (PR [#9605](https://github.com/lablup/backend.ai-webui/pull/9605)).

## Symptom

Downloading from the folder explorer does nothing — no file is saved. Both download paths are affected:

- the per-row **Download** action on a single file, and
- the toolbar archive download for a multi-row selection.

## Reproduce

1. Open the reporter's [test folder](https://fr-1564-pr9605-decide-overwrite-per.sungchul.10-82-0-159.sslip.io/project/a%ED%95%9C%EA%B5%AD%EC%96%B4%EA%B0%80%EB%8A%A5_cde/data?folder=6ac20b2c-3237-43eb-b06c-a5c3841a0d07).
1. Click the download icon on one file row — nothing is downloaded.
1. Select several rows and use the toolbar download — nothing is downloaded.

## Where

- Per-row: `FileNameCell.tsx` → `downloadFileMutation` → `baiClient.vfolder.request_download_token()` → `initiateDownload()`
- Multi-select: `ExplorerActionControls.tsx` → `downloadArchiveMutation` → `baiClient.vfolder.request_download_archive()` → `initiateDownload()`
- `packages/backend.ai-ui/src/helper/index.ts` → `initiateDownload()` (creates a hidden `` and clicks it)

## Investigation pointers

- `initiateDownload()` resolves as soon as the anchor is clicked, so the "Download started" toast fires whether or not the browser ever begins a transfer. The toast is not evidence the download worked — check the Network tab and the storage proxy response instead.
- The `download` attribute is ignored for cross-origin URLs, and the storage-proxy download URL is a different origin from the WebUI. Verify the proxy URL returned by `request_download_token` / `request_download_archive` is reachable from the browser, and what status/headers (`Content-Disposition`, CORS) it returns.
- Confirm whether the same steps fail on `main` and against a non-dev deployment, to separate a code regression from an environment/proxy-reachability problem on the dev host.

## Notes

- Not caused by PR #9605 — that PR changes no download code path.

JIRA Issue: FR-3927

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with FileNameCell.tsx, ExplorerActionControls.tsx, and packages/backend.ai-ui/src/helper/index.ts, then reproduce both download paths while inspecting the Network tab and storage-proxy response. Compare main with a non-dev deployment and verify that single-file and archive downloads reach the browser successfully with appropriate proxy status and headers.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.