It looks like Aerospike is trying to optimize by storing an integer instead of a long when it can. I’m seeing the client return an Integer for a bin when it should be a Long. When I write to Aerospike the Bin constructor that I call is Bin(String, long). The deserialization code expect the same type to be read as written, or at least not vary depending on the value.
Unfortunately, we don’t (and it’s hard across languages) to store the exact type of the integer, along with the value. Your code (in any language, this applies to C# and other languages) is going to have to expect that you won’t get the same type.