@brian.kodikara - I am not quite sure what you’re asking. You can start a new process instance. You can also use the Zeebe API to move the token to a certain task in the new instance (though this isn’t recommended).
You asked to restart the process instance “so that it will be started from the place where it failed” - this is the purpose of retries in the Connectors, and the guidance for handling failures explains how to model failure and incident handling in your processes. Specifically, the section about “Handling errors on the process level”: you could model an error event that loops back to a previous task, for instance. (This blog post has a great section on modeling a retry.)
To be more explicit, the best practice isn’t to fail the current process and restart it; the best way is to model the exception/error path in your model.