Comfy-Org / Comfy-Org/ComfyUI_frontend

Prevent widget nodeType metadata from falling through to FormDropdown DOM

Open Beginner friendly
#16,294 0 comments 0 reactions 0 assignees View on GitHub
agent-ok area:dom-widgets area:vue-migration area:widgets effort:trivial Potential Bug priority:nice-to-have
Dominant language
TypeScript
Stars
2k
Forks
699
Avg merge
1d 7h
Merged PRs (30d)
490

Description

- Vue tries to assign internal `nodeType` metadata to a `

`.
- Confirmed on current `main` and historical head `956fd013c3`.
- Dropdown still works, but every affected asset widget emits a console warning.

Full context for agent readers

## What happened?

`WidgetSelectDropdown` forwards `widget.options.nodeType` through `v-bind` to `FormDropdown`. `FormDropdown` does not declare that prop and renders a `

` root, so Vue's attribute fallthrough attempts to assign the read-only native `HTMLDivElement.nodeType` property and reports:

```text
Failed setting prop "nodeType" on


```

The path remains present on [`main` at `3697a1bc3`](https://github.com/Comfy-Org/ComfyUI_frontend/blob/3697a1bc3ba7f6b98a1ead888721f7676b536eb5/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue#L66-L68), through the [`v-bind`](https://github.com/Comfy-Org/ComfyUI_frontend/blob/3697a1bc3ba7f6b98a1ead888721f7676b536eb5/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue#L195-L204), to the [`FormDropdown` root div](https://github.com/Comfy-Org/ComfyUI_frontend/blob/3697a1bc3ba7f6b98a1ead888721f7676b536eb5/src/renderer/extensions/vueNodes/widgets/components/form/dropdown/FormDropdown.vue#L331-L340). [`PANEL_EXCLUDED_PROPS`](https://github.com/Comfy-Org/ComfyUI_frontend/blob/3697a1bc3ba7f6b98a1ead888721f7676b536eb5/src/utils/widgetPropFilter.ts#L24-L29) does not filter `nodeType`.

## Steps to reproduce

1. Load a workflow containing a linked or promoted asset dropdown whose widget options include `nodeType`.
2. Enable Vue widget rendering.
3. Open the browser console and observe the warning above.

## Workflow

A linked or promoted asset widget with `options.nodeType`; no specific graph topology is required.

## Impact

Visual/UI issue only. Vue catches the failed property assignment, so dropdown behavior usually continues, but the warning obscures actionable console failures.

## Suggested regression boundary

Treat `nodeType` as internal widget metadata rather than a `FormDropdown` or DOM attribute. A focused component test can render the existing asset-mode fixture with `options.nodeType` and assert that no failed-property warning is emitted.

## Environment

- Reproduced from source on current frontend `main`: `3697a1bc3ba7f6b98a1ead888721f7676b536eb5`
- Also present on historical served frontend: `956fd013c3a0eaf4ed03294972de12f3924d8db3`
- Browser: Chrome/Chromium


Contributor guide

Open the contributing guide

Research direction

Start with WidgetSelectDropdown.vue and trace its v-bind into FormDropdown.vue, then inspect PANEL_EXCLUDED_PROPS in src/utils/widgetPropFilter.ts. Run the focused component test with the existing asset-mode fixture and options.nodeType. Done means the dropdown still works and rendering it no longer emits the failed-property warning.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
84/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.