If we restart a node that had an active session, the shell starts a new session instead of restoring the state of the old session. This means that if we were running a prepared transaction before the restart, we can't call commitTransaction or abortTransaction without the shell returning an error saying that there is no active transaction on the session. For now, we've been using a workaround to manually set the txnNumber and lsid so that we can get runCommand to work. However, we still can't run any other functions on the session and expect them to be run on the session we wanted (and we can't use the commitTransaction or abortTransaction functions, we have to use runCommand).
It would be great to be able to restore the entire state of the session beyond just the txnNumber and lsid. This would be particularly useful for passthrough suites that do failover testing for prepared transactions.