Comfy-Org / Comfy-Org/ComfyUI_frontend

[Bug] Local file drops on Vue upload nodes regress after v1.43.4 / #9463

Open
#11,119 0 comments 0 reactions 0 assignees View on GitHub
area:ui area:vue-migration area:widgets
Dominant language
TypeScript
Stars
2k
Forks
699
Avg merge
1d 7h
Merged PRs (30d)
490

Description

## Description

There is a reproducible regression in the `v1.43.4 -> v1.43.5` window affecting Vue-rendered upload nodes such as `Load Image`.

`v1.43.4` works.
`v1.43.5` is broken.

The regression is tied to #9463 (`fix: extract filename from dropped URLs and let URI drops bubble on Vue nodes`) and specifically to the post-#9463 handoff between Vue-node drop handling and the document/canvas drop handler.

Related fix: #10841

---

## Expected Behavior

Dragging a local image file from the OS file manager onto a Vue `Load Image`-style node should upload/select the file in that node.

URI-only drops may bubble to the document handler, but real file drops over upload-capable Vue nodes should still be recoverable by the graph/node drop path.

---

## Actual Behavior

The node highlights as a valid drop target on dragover, but the local file drop does not populate the node.

In the broken versions, the final `drop` can land on `canvas#graph-canvas`, and the graph/document handoff does not correctly route the file-backed drop back into the target node.

---

## Regression Window

- **Good:** `v1.43.4`
- **Bad:** `v1.43.5`

That makes the `v1.43.4 -> v1.43.5` delta the relevant regression window.

---

## Steps to Reproduce

1. Switch to Vue-rendered nodes
2. Add a `Load Image` node (or another upload-capable Vue image node)
3. Drag a local image from the OS file manager onto the node
4. Drop it on the node

---

## Repro Notes

In the broken versions:
- the node can still highlight on dragover
- the file is not loaded into the node on drop
- the failure is on the frontend drop-routing path, not in backend image decoding

This is not just a generic “drag/drop sometimes fails” report. It has a narrow regression window and a concrete cause.

---

## Root Cause

The broken invariant after #9463 is:

> URI-only drops may bubble to the document handler, but real file drops over upload-capable Vue nodes must still be recoverable by the graph/node drop path.

Once Vue-node drops were allowed to bubble, the document/canvas handler could discard or misroute graph-canvas drops too early instead of resolving the target node and calling `node.onDragDrop(event)` for real file-backed drops.

This matches the observed regression window and runtime behavior.

---

## Why I’m opening this separately

I already have the fix in:

- #10841

I’m opening this issue so the regression itself is visible and trackable independently of the PR.

The PR contains:
- the concrete repro analysis
- the narrowed root cause
- the fix
- targeted regression tests around the affected drag/drop and media-routing paths

---

## Related

- #9463
- #10841

---

## Impact

This breaks a very common workflow in Vue nodes: dragging local images directly into upload nodes.

As a workaround, users have to manually place files into the input directory and select them indirectly, which is much slower and more error-prone than direct drag/drop.

---

## Environment

- Frontend:
- `v1.43.4` works
- `v1.43.5` breaks
- Browser: Chromium-based browser
- Reproduced with local OS file drags onto Vue upload nodes

┆Issue is synchronized with this [Notion page](https://www.notion.so/Issue-11119-Bug-Local-file-drops-on-Vue-upload-nodes-regress-after-v1-43-4-9463-33e6d73d365081d4bc47cccbcea1a13f) by [Unito](https://www.unito.io)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.