When using custom RPCs that receive inputs of type u128, passing numbers with hex representations with 14 significant digits or more results in an error.
For example, passing the number 4503599627370496 (0x10000000000000 in hex, 14 digits) will have the node respond with -32602: Invalid params: invalid type: string "0x00000000000000000010000000000000", expected u128.. Passing one less, 4503599627370496 (which is 0xfffffffffffff in hex, 13 digits) works just fine.
Steps to reproduce: https://polkadot.js.org/apps/#/rpc (Edgeware chain), contracts.call endpoint, input 4503599627370495 (atto), submit. All should work fine. Attempt the same with 4503599627370496 and you should get an error.