My company provides support for a website and an army of REST API's we build and maintain. While providing tech support to our end users we have noticed a common thread, specifically windows desktop/laptop users.
Periodically we get phone calls from people who typically use their laptops offline and their system clock gets out of whack. The symptom the end user experiences is when they try to communicate with our website/REST API's will get HTTP 400 errors from our REST API's (hosted on AWS behind a load balancer, each load balanced server is using NGINX), even though all the payload is correct in regards to authentication/authorization.
The problem is only resolved when we get the end users system clock back in sync
No other devices have ever reportedly experienced this issue, and I did see a post on IBM's support website which had no additional help beyond "get the clock back in sync" which I can confirm already that it resolves the issue https://www.ibm.com/support/pages/http-400-bad-request-server-server-communication-fails-when-system-clocks-are-not-synchronized
but really this is not something that I like telling end users that they have to fix in order to use our product, are there any ideas on what can be done on our end? Like is there a way to detect in the browser if the system clock is off and notify the end user or to just mitigate the issue on our end to begin with and allow the traffic?
-- Edit
Firefox describes this issue as well, but says its related to HTTPS, how can I detect that the clock is off using Javascript? https://support.mozilla.org/en-US/kb/troubleshoot-time-errors-secure-websites