Unable to open Workflow after forced PC shutdown

Hi everyone,

I’m facing a serious issue with my KNIME workflow after a forced shutdown of my PC. My computer went into hibernation, and I had to manually restart it. The workflow was completed and saved before the shutdown, but now I can’t open it. I get the following error message:

The project could not be loaded. (source: http://org.knime.ui.java/assets/index-L_Vmx7rg.js; line: 87)
2025-03-24 11:02:38,323 : ERROR : ModalContext :  : LoadWorkflowRunnable :  :  : Could not load workflow from: workflow.knime
java.io.IOException: Unable to parse xml: line=2: Contenu non autorisé dans le prologue.
xml: URI=java.io.BufferedInputStream@6aebf4a
dtd: URI=null
	at org.knime.core.node.config.base.XMLConfig.load(XMLConfig.java:137)
	at org.knime.core.node.config.Config.load(Config.java:937)
	at org.knime.core.node.config.Config.loadFromXML(Config.java:925)
	at org.knime.core.node.NodeSettings.loadFromXML(NodeSettings.java:105)
	at org.knime.core.node.workflow.WorkflowLoadHelper.createTemplateLoadPersistor(WorkflowLoadHelper.java:339)
	at org.knime.core.node.workflow.WorkflowLoadHelper.createLoadPersistor(WorkflowLoadHelper.java:306)
	at org.knime.core.node.workflow.WorkflowManager.createLoadPersistor(WorkflowManager.java:8618)
	at org.knime.core.node.workflow.WorkflowManager.load(WorkflowManager.java:8658)
	at org.knime.core.node.workflow.WorkflowManager.loadProject(WorkflowManager.java:8505)
	at org.knime.workbench.editor2.LoadWorkflowRunnable.run(LoadWorkflowRunnable.java:199)
	at org.knime.ui.java.util.DesktopAPUtil.loadWorkflow(DesktopAPUtil.java:188)
	at org.knime.ui.java.util.DesktopAPUtil.fetchAndLoadWorkflowWithTask(DesktopAPUtil.java:152)
	at org.knime.ui.java.api.OpenProject.loadProject(OpenProject.java:260)
	at org.knime.ui.java.api.OpenProject.openProjectWithProgress(OpenProject.java:187)
	at org.knime.ui.java.api.OpenProject.lambda$0(OpenProject.java:106)
	at org.knime.ui.java.util.DesktopAPUtil.lambda$13(DesktopAPUtil.java:477)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:124)
Caused by: org.xml.sax.SAXException: line=2: Contenu non autorisé dans le prologue.
xml: URI=java.io.BufferedInputStream@6aebf4a
dtd: URI=null
org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 1; Contenu non autorisé dans le prologue.
	at org.knime.core.node.config.base.XMLContentHandler.fatalError(XMLContentHandler.java:140)
	at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	at org.knime.core.node.config.base.XMLConfig.load(XMLConfig.java:133)
	... 16 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 1; Contenu non autorisé dans le prologue.
	at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	... 29 more
2025-03-24 11:02:38,326 : ERROR : main :  : OpenProject :  :  : Failed to open project
org.knime.ui.java.api.OpenProject$OpenProjectException: The project could not be loaded.
	at org.knime.ui.java.api.OpenProject.openProjectWithProgress(OpenProject.java:190)
	at org.knime.ui.java.api.OpenProject.lambda$0(OpenProject.java:106)
	at org.knime.ui.java.util.DesktopAPUtil.lambda$13(DesktopAPUtil.java:477)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:124)
2025-03-24 11:02:38,342 : ERROR : main :  : KnimeBrowserView :  :  : %cerror%c Desktop API:: Error response 
      background: #c0392b;
      border-radius: 0.5em;
      color: white;
      font-weight: bold;
      padding: 2px 0.5em;
      [object Object] (source: http://org.knime.ui.java/assets/index-L_Vmx7rg.js; line: 87)
2025-03-24 11:02:38,345 : ERROR : main :  : KnimeBrowserView :  :  : %cerror%c Could not open selected workflow: 
      background: #c0392b;
      border-radius: 0.5em;
      color: white;
      font-weight: bold;
      padding: 2px 0.5em;
      The project could not be loaded. (source: http://org.knime.ui.java/assets/index-L_Vmx7rg.js; line: 87)

The original workflow will not open and throws the above error. To try and recover, I created a new workflow manually, copying all the files (except workflow.knime) from the original workflow folder. However, this results in an empty workflow with no data or nodes inside.

I am using Windows, and here’s what I have tried so far:

  • Created a copy of the workflow and reset all nodes before trying to open it.
  • Checked the workflow folder structure:
    • workflow.knime (deleted and tried to regenerate it).
    • workflowset.meta and workflow-metadata.xml are present.
    • No missing files detected.
  • Tried restoring a backup, but no previous versions were available.
  • Attempted to manually create a new workflow and copy-paste the contents.
  • Checked for corrupted XML files (workflow-metadata.xml, node_x.xml, etc.), but no obvious issues were found.

Despite all these efforts, the original workflow still won’t open, and the new workflow I created manually is blank. I desperately need to recover the original workflow as I have been working on it for several days.

Has anyone encountered this issue before? Any suggestions on how to fix or recover the workflow would be greatly appreciated!

Thanks in advance for your help!

Hi @Foxyellow,

the workflow.knime contains all top-level connections between nodes.

If the file is not completely scrambled, we can try to repair it manually (the chance is slim, but it could work).

Do you still have the original, broken workflow.knime? Could you share it? In addition, a top-level folder listing of the workflow folder would be interesting, so we see all the nodes that are supposed to be there.

2 Likes

Thank you for your suggestion.

Unfortunately, when I open the workflow.knime file, it appears to be corrupted and displays only zeros and unreadable characters. Here’s a screen of what I see:

The nodes present in the original workflow are as follows:

Catch Errors _Data Ports_ (#2438)
Chunk Loop Start (#2439)
Clicker _Labs_ (#828)
Clicker _Labs_ (#829)
Column Appender (#2305)
Column Appender (#2354)
Column Appender (#2366)
Column Appender (#2379)
Column Appender (#2431)
Column Appender (#2462)
Column Appender (#2469)
Column Expressions (#2368)
Column Expressions (#2381)
Column Expressions (#2397)
Column Expressions (#2404)
Column Expressions (#2413)
Column Expressions (#2425)
Column Expressions (#2454)
Column Filter (#2477)
Concatenate (#2476)
Conda Environment Propagation (#2094)
Conda Environment Propagation (#2341)
Conda Environment Propagation (#2347)
Conda Environment Propagation (#2362)
Conda Environment Propagation (#2421)
Conda Environment Propagation (#2450)
Conda Environment Propagation (#2451)
Conda Environment Propagation (#2453)
Cross Joiner (#2360)
CSV Reader (#2411)
CSV Reader (#2412)
Duplicate Row Filter (#2445)
Duplicate Row Filter (#2480)
Excel Writer (#2349)
Expression (#2414)
Joiner (#2408)
Joiner (#2444)
LLM Prompter (#2300)
LLM Prompter (#2334)
LLM Prompter (#2336)
LLM Prompter (#2350)
LLM Prompter (#2358)
LLM Prompter (#2376)
LLM Prompter (#2388)
LLM Prompter (#2415)
LLM Prompter (#2458)
LLM Prompter (#2465)
Local GPT4All Chat Model Connector (#2301)
Local GPT4All Chat Model Connector (#2335)
Local GPT4All Chat Model Connector (#2337)
Local GPT4All Chat Model Connector (#2351)
Local GPT4All Chat Model Connector (#2371)
Local GPT4All Chat Model Connector (#2377)
Local GPT4All Chat Model Connector (#2387)
Local GPT4All Chat Model Connector (#2419)
Local GPT4All Chat Model Connector (#2464)
Local GPT4All Chat Model Connector (#2471)
Loop End (#2440)
Missing Value (#2304)
Missing Value (#2356)
Missing Value (#2367)
Missing Value (#2380)
Missing Value (#2432)
Missing Value (#2461)
Missing Value (#2468)
Navigator _Labs_ (#822)
Python Script (#2426)
Python Script _legacy_ (#2112)
Python Script _legacy_ (#2338)
Python Script _legacy_ (#2345)
Python Script _legacy_ (#2348)
Python Script _legacy_ (#2361)
Python Script _legacy_ (#2364)
Python Script _legacy_ (#2370)
Python Script _legacy_ (#2373)
Python Script _legacy_ (#2383)
Python Script _legacy_ (#2389)
Python Script _legacy_ (#2391)
Python Script _legacy_ (#2392)
Python Script _legacy_ (#2393)
Python Script _legacy_ (#2394)
Python Script _legacy_ (#2395)
Python Script _legacy_ (#2398)
Python Script _legacy_ (#2399)
Python Script _legacy_ (#2403)
Python Script _legacy_ (#2407)
Python Script _legacy_ (#2410)
Python Script _legacy_ (#2420)
Python Script _legacy_ (#2427)
Python Script _legacy_ (#2429)
Python Script _legacy_ (#2434)
Python Script _legacy_ (#2435)
Python Script _legacy_ (#2446)
Python Script _legacy_ (#2447)
Python Script _legacy_ (#2452)
Python Script _legacy_ (#2472)
Python Script _legacy_ (#2475)
Regex Extractor (#2382)
Regex Extractor (#2384)
Regex Extractor (#2385)
Regex Extractor (#2386)
Regex Extractor (#2390)
Regex Extractor (#2396)
Regex Extractor (#2402)
Regex Extractor (#2405)
Regex Extractor (#2409)
Regex Extractor (#2436)
Regex Extractor (#2443)
Regex Extractor (#2456)
Regex Extractor (#2457)
Row Filter (#2352)
Row Filter (#2418)
Row Filter (#2423)
Row Filter (#2424)
Row Filter (#2442)
Row Filter (#2459)
Row Filter (#2466)
Row Filter (#2474)
Row Splitter (#2372)
Row Splitter (#2401)
Row Splitter (#2406)
Row Splitter (#2479)
Sorter (#2417)
String Configuration (#825)
String Configuration (#827)
String Manipulation (#2302)
String Manipulation (#2355)
String Manipulation (#2369)
String Manipulation (#2428)
String Manipulation (#2433)
String Manipulation (#2455)
String Manipulation (#2460)
String Manipulation (#2467)
Table Creator (#2306)
Table Creator (#2346)
Table Creator (#2353)
Table Creator (#2357)
Table Creator (#2365)
Table Creator (#2378)
Table Creator (#2430)
Table Creator (#2463)
Table Creator (#2470)
Text Sender _Labs_ (#824)
Text Sender _Labs_ (#826)
Tika Parser (#2098)
Tika Parser (#2340)
Timer Info (#2333)
Timer Info (#2339)
Timer Info (#2342)
Timer Info (#2343)
Timer Info (#2344)
Timer Info (#2363)
Timer Info (#2374)
Timer Info (#2400)
Timer Info (#2441)
Timer Info (#2473)
Timer Info (#2478)
Try _Data Ports_ (#2437)
Web Interaction Start _Labs_ (#821)

This should give you an overview of the nodes that were used in the original workflow.

Please let me know if this folder structure helps in any way or if you need additional information.

Thank you again for your support. I’m looking forward to your suggestions.

Best regards,

Likely Sublime Text interprets your file as a binary file, because of its non-standard .knime suffix instead of XML. So it displays the bytes (as hex). I think it should display correctly by selecting the type as XML in Sublime somewhere in the application footer.

Anyway, I pasted the text into a Hex editor and it shows that the file only contains the XML version tag, but nothing else.

Unfortunately, the connections are lost, but we can at least regenerate the file as much as possible and place all the configured node instances onto the workflow canvas. If you still have the workflow.svg and nothing else is corrupt, you can try to recreate the connections manually.

We took the time to create a workflow in which you can select a “broken” workflow in the workspace and it will generate a workflow_repaired.knime in the workflow folder. You can then replace the corrupt one with it and open the workflow. All node instances present on the top level in the workflow folder should then appear in a big grid.

3 Likes