Currently, the CSRF token is only good for 8 hours. This means that a self-checkout terminal left inactive for 8 hours (e.g. overnight, over a holiday closure, etc) will create a wrong CSRF token error on the first activity attempt in the morning.
I think the most obvious (but not necessarily the best) solution is to have a timer that refreshes the main SCO page at certain intervals. -- (Note that this same problem will probably arise with Vue.js driven pages.)
SCI has a SelfCheckInTimeout pref that refreshes the screen.
(In reply to Jonathan Druart from comment #2) > SCI has a SelfCheckInTimeout pref that refreshes the screen. That should do the trick. We could move that out to a .js file and use it in both interfaces.