1021 INVALID_TIMESTAMP - timestamp ahead of server time

Hi all,

I’ve sync’d my app with the server’s time using the timestamp from the exchangeInfo API endpoint.
Most of the time, this works fine. However, occassionally (maybe after thousands of requests, I occassionally get the 1021 INVALID_TIMESTAMP “Timestamp for this request was 1000ms ahead of the server’s time” ).

If my time has been sync’d when I first started up, how would this be possible ?
I can understand if I received the “timestamp for this request is outside of the recvWindow”, but I don’t understand how once sync’d my clock can drift that much ahead of the server time

Maybe that’s the problem? The server time you receive from the API has network latency not included into it. If network latency is 100ms then the server time you observe over API is 100ms behind the current server time. (Although in this case your clock would be behind server time, not ahead of it…)

Anyways, just use NTP or some other standard way to sync your clock, don’t use exchange time. I’ve never had issues with this using out-of-the box Fedora Linux installations, and my guess is that your attempt to sync ‘to exchange’ just made things worse.

Thanks for responding - I considered using NTP initially.
However, I thought the whole point of serverTime and /api/v3/time endpoint was for people to “offset” their clocks
I’ll give NTP a crack if you don’t have any issues using it. Many thanks

Hi, i tried to use ntpd as sync service in Ubuntu 20.04 instead of timesyncd but still have the same issue. Would you give some hint of how to set up ntpd to solve it?

Hi Artur. I tried the same using exchange server time for all my API requests. however i was unable to get it done unless i sync my time in my Adjust date/time settings on my computer. this works only if i sync my time. however when i am running the same code in my office PC where time sync is disabled due to security purposes, i am getting the error “APIError(code=-1021): Timestamp for this request is outside of the recvWindow”. is there any other way to overcome this issue? my local machine time server is linked to a local server. i tried using the local NTP time and offsetting with binance server time but failed? looking forward for your suggestions?