I've configured the backtracking in my flow in the following way:
<view-state id="step1" model="step1Model" >
<transition on="next" to="step2" history="invalidate">
</transition>
</view-state>
<view-state id="step2" model="step2Model" >
<transition on="next" to="xxxx" history="invalidate">
</transition>
</view-state>
Also, I'm using the programatic validation implementing a model validate method in the same way you can read in the documentation (link).
The backtracking configuration is working properly when the model validation doesn't have any errors, in this case if you press the browser back button the flow is reloaded how it's expected.
The problem is when the model has some errors the validation doesn't let you go to the next step, in this case if you press the browser back button you can see a browser error page "Document Expired. This document is no longer available".
Any idea about this?
Thanks, Gerardo.