I had similar problem before, WF hang in waiting state.
I think you were using “route entry to” and it was waiting, and you updated the WF and then you updated the running instance.
Check your WF admin console Error Log: Current Error Log, and look for this error: Object reference not set to an instance of an object.
if the error is there, then take a look at this page:
https://support.laserfiche.com/ForumsFrames.aspx?Link=viewtopic.php%3ft%3d19945%26amp
These are the steps to recreate the problem:
1- Publish a WF with Route Entry to Folder with waiting status for example <tag> is set and to Send Email every 5 minutes for 60 email - the idea is to have "Route Entry to Folder" to be in waiting state while sending emails.
2- Run it on entry
Definition: Version 1
Designer : Version 1 - Waiting
Diagnostic: Version 1 - False - Next Timer: (Date/Time + 5 minutes)
2- Wait for the first email to be sent so you can 5 minutes to do next step
3- Publish: Overwrite: Yes - Update running WF: Yes
Definition: Version 2
Designer : Version 1 - Waiting
Diagnostic: Version 2 - True - Next Timer: (Date/Time + 5 minutes)
4- Wait for the next email, then notice values changed
Definition: Version 2
Designer : Version 2 - Waiting
Diagnostic: Version 1 - False - Next Timer: (Date/Time + 5 minutes)
5- When the Next Timer the WF will stuck on running with these values
Definition: Version 2
Designer : Version 2 - Running
Diagnostic: Version 1 - False - Next Timer: Empty
6- Error in Activity log but last modified date remain the same
-----------------------------------------------------------------------
if you continue then you will have another problem:
https://answers.laserfiche.com/questions/52073/Wait-condition-met-but-workflow-does-not-move-to-next-step#53438
7- Set the tag to true to end the wait and you will see an activity (wait for entry change) highlighted in blue in the instance details, but the conditions tab shows the conditions for it have evaluated successfully.