Comfy-Org / Comfy-Org/ComfyUI_frontend

Errors from another workflow may persist after switching to a drag-dropped API workflow

Open
#14,656 1 comment 1 reaction 0 assignees View on GitHub
area:workflows Not Reproducable Potential Bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.