A result cell's download button does nothing off the canvas
Maintainers usually reply within 1 day
@yangzhang75 is already working on this.
Since Sep 17, 2026.
Assessment
This issue has not been assessed yet.
Description
What happened?
The download button on a result cell does nothing. Pressing it opens the export dialog; entering a filename, choosing a destination and confirming closes the dialog and nothing else happens — no file, no request, no error, no message. It behaves the same for every destination: export to local, save to an existing dataset, and save to a newly created dataset, which stays empty.
The cause is the scope the export gives itself. WorkflowResultExportService.performExport reads the canvas selection (getCurrentHighlightedOperatorIDs()) unless the caller asked for all operators, and returns at its operatorIds.length === 0 check when that comes back empty. That is the right rule for the two callers that read the canvas — the top menu asks for everything, the context menu exports the selection — but a result cell is neither: a cell belongs to one operator, whoever happens to be selected. On the Form View the selection holds the step the user is configuring, and holds nothing at all until they click one, so a cell's export there finds an empty scope and returns before sending anything. The dialog's own checks read the same empty selection, so a restricted operator goes unreported there too.
Expected: the download button on a result cell exports that cell's operator, wherever the cell is mounted.
How to reproduce?
- Open a workflow whose result column holds binary data (a Python UDF source yielding a
binarycolumn is enough) and run it. - Open it in the Form View (
/user/workflow/<id>/form) and do not click any step, so nothing is selected. - Hover a result row and click the download icon on the binary cell. The export dialog opens.
- Enter a filename, choose
local, and press Export. - The dialog closes and nothing arrives. DevTools > Network shows no request to
/api/executions/result/export/local.
https://github.com/user-attachments/assets/c770a437-7547-4809-a1a6-88cad1013855
Separately, and not covered by this issue: export-execution-result-enabled defaults to false in common/config/src/main/resources/gui.conf, and performExport returns even earlier when it is off, with the same silence. On a default local deployment you have to set GUI_WORKFLOW_WORKSPACE_EXPORT_EXECUTION_RESULT_ENABLED=true before any export works at all. Whether that default should change is a separate question.
Version/Branch
1.4.0-incubating-SNAPSHOT (main)
Commit Hash (Optional)
dcb25efa9e1d4321b7b99459db4ee777f37cbaff
What browsers are you seeing the problem on?
No response
Relevant log output
No request is sent; the export service returns before any HTTP call.
- Dominant language
- Scala
- Stars
- 316
- Forks
- 192
- Avg merge
- 4d 17h
- Merged PRs (30d)
- 141
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from apache/texera
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
apache/texera#8775 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
apache/texera#8756 · 4 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
apache/texera#8700 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
apache/texera#8682 · 5 comments ·
Maintainers usually reply within 1 day
-
JSONL File Scan reads a JSON null as the text "null"Possibly taken @CaroFernando claimed this 4 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
apache/texera#8674 · 1 comment · 1 assignee ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
[Rust][Flaky Test] multiple_deadlines_fire_in_order asserts a wall-clock gap instead of firing orderOpenCI/CD ⚒️ Flaky-tests 🐦
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
valkey-io/valkey-glide#7255 ·
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
lichess-org/lila#21905 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day