lablup / lablup/backend.ai-webui
Folder explorer: file download does nothing, for both a single row and a multi-row selection
- 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