Comfy-Org / Comfy-Org/ComfyUI_frontend
Errors from another workflow may persist after switching to a drag-dropped API workflow
- Dominant language
- TypeScript
- Stars
- 2k
- Forks
- 699
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 490
Description
## Symptom (observed, not yet reproduced)
An API-format workflow opened by **dragging and dropping** the JSON onto the canvas appeared to keep showing a *different* workflow's errors after switching tabs into it — i.e. the incoming tab did not clear the outgoing workflow's error state.
Filing so it is not lost. I could not reproduce it, and the original observation was made on a branch that no longer exists, so the symptom may be stale.
## What was tested
On a local tree with #14555 and #14557 merged, two workflow tabs were created, each with a **different** uninstalled node type, and the error panel and overlay were read at each step:
| step | panel | overlay |
|---|---|---|
| tab-alpha active | `Unknown pack MissingNodeAlpha` | `Missing node: MissingNodeAlpha` |
| tab-beta active | — | `Missing node: MissingNodeBeta` |
| switched back to tab-alpha | — | none |
No leakage: while `tab-beta` was active, nothing from `tab-alpha` was shown. The reported pollution did not occur.
The absent overlay in the last row is by design — tab switching calls `showPendingWarnings(undefined, { silent: true })` from `workflowService.openWorkflow`, and `silent` suppresses `showErrorOverlay()` while still syncing the store.
## What was NOT covered
- **The drag-and-drop entry path.** The test drove `window.app.loadApiJson(...)` directly rather than dropping a file, so anything specific to the drop handler (`deferWarnings: true` for each file, then a single `showPendingWarnings()` after the loop) is untested here.
- The original branch the symptom was seen on. It was a pre-restructure version of the errors work that was discarded, so the behaviour there is not recoverable.
## Repro steps to try
1. Open a workflow that reports an error (missing node or missing model).
2. Drag and drop an API-format JSON referencing an uninstalled node type onto the canvas.
3. Switch between the two tabs and watch the Errors panel.
Expected: each tab shows only its own errors.
Contributor guide
Research direction
Trace the drag-and-drop entry path, comparing it with window.app.loadApiJson(...), then inspect workflowService.openWorkflow and the deferWarnings/showPendingWarnings flow. Done means a drag-dropped API workflow has coverage and switching tabs shows only the active workflow's errors, including the expected silent overlay behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100