ComfyUI_frontend
ComfyUI_frontend copied to clipboard
[Bug]: Should make link_fixer non-blocking (and, also update).
Frontend Version
Latest.
Expected Behavior
Corrupted workflows still try to load.
Actual Behavior
Corrupted workflows may throw an error.
Steps to Reproduce
See https://github.com/rgthree/rgthree-comfy/issues/483 for example workflow.
Debug Logs
N/A
Browser Logs
N/A
Setting JSON
N/A
What browsers do you use to access the UI ?
No response
Other Information
I got a report at https://github.com/rgthree/rgthree-comfy/issues/483 about the link_fixer causing an error, which confused me as I implemented it into rgthree-comfy to never block loading. Upon investigation, I found the error was coming from ComfyUI_frontend, which had pulled the rgthree-comfy code in at src/utils/linkFixer.ts
That's all well and good, but it looks like it's executing as part of the initialization and, as for the bug, throwing an error which stops the execution. This was not intended as part of rgthree-comfy, which checks for corruption after the workflow has loaded. This is because even corrupt workflows can have utility in the UI, from being nearly fully workable or just re-connecting the corrupted links, etc.
Consider updating the invocation so that it happens after the workflow is loaded so if there is an error, there's still something to show.
Also, I've re-written the fixer in response to the filed bug, so that it won't throw an error for that case, and also more cleanly separate checking for corruption from fixing it. I'd urge you to consider updating when you can. Thx
┆Issue is synchronized with this Notion page by Unito
That's all well and good, but it looks like it's executing as part of the initialization and, as for the bug, throwing an error which stops the execution. This was not intended as part of rgthree-comfy, which checks for corruption after the workflow has loaded. This is because even corrupt workflows can have utility in the UI, from being nearly fully workable or just re-connecting the corrupted links, etc.
If the fix is not viable we do still load the initial graph. I think the issue is that if link fixer itself throw error due to internal issues, we need a try catch calude to prevent it.