Breaking Non determinism with signalExternalWorkflow

I am currently testing out a workflow that uses the synchronous proxy example where we have a long running workflow and we update that workflow with a secondary workflow. The main workflow will communicate back after processing the signal which causes the synchronous workflow to close and output its data to our UI.

┌───────────────────┐               ┌─────────────┐
│LongRunningWorkflow│               │ProxyWorkflow│
└────────┬──────────┘               └──────┬──────┘
         │                                 │
        ┌┼┐                                │
        │┼│    SignalToMoveForward         │
        │┼┤◄──────────────────────────────┬┼┐
        │┼│                               │┼│
        │┼│                               │┼│
        │┼┼──────────────────────────────►└┼┘
        │┼│    NotifyAfterCompletion       │
        └┼┘                                │
         │                                 │
         │                                 │

Now i am trying to test out using the tctl workflow reset commands on the LongRunningWorflow but when i do i get errors stating non-determinism and that the child workflow (ProxyWorkflow) that i am trying to communicate with is closed so it cant send the external signal anymore.

Im guessing there is something that i need to do in my workflow to make sure that this can run multiple times, but i figured using the SignalExternalWorkflow would just handle that.

Now i am trying to test out using the tctl workflow reset commands on the LongRunningWorflow but when i do i get errors stating non-determinism and that the child workflow (ProxyWorkflow) that i am trying to communicate with is closed so it cant send the external signal anymore.

Workflow reset starts a new workflow execution (with sameworkflow id and new run id) and history is replayed up to the reset event.
By default when parent workflow completes, children do as well. If you want ProxyWorkflow to stay alive after its parent completes
set ParentClosePolicy to ABANDON and start it async, see this post for details.

Is there a reason why ProxyWorkflow is a child workflow?

when i do i get errors stating non-determinism

Workflow reset replays the workflow history up to the reset event point. These errors you are getting can indeed mean that you have some non-deterministic code that you should address. If you can show the error(s) and your workflow history we can take a closer look.