Thanks for pinpointing the issue. The issue got resolved after setting a custom key type. The data got loaded into the cache.
1. The strange part is that even if I set different key and value types the below query executes correctly SqlQuery<BinaryObject, BinaryObject> query = new SqlQuery<>(table.getCacheValueType(), "F1 = 'ABC' AND F2 = 'XYZ'"); try(QueryCursor<Cache.Entry<BinaryObject, BinaryObject>> cursor = cache.query(query)) { logger.info("No of entries : {}", cursor.getAll().size()); } Here F1 is a field from the key object while F2 is a field from the value object. The cache is of type IgniteCache<BinaryObject, BinaryObject> 2. Even though the previous data load got resolved on setting the correct keytype of the querytype, I didn't follow why does the query engine kick in when I am try to load the data using the data streamer api? How does deserialization come in, isn't it suppose to just do serialization when loading the data into the cache? Kindly let me your inputs. It will help in understanding whats happening behind the scenes. Thanks. -- View this message in context: http://apache-ignite-users.70518.x6.nabble.com/Error-while-loading-data-into-cache-with-BinaryObject-as-key-field-tp6014p6062.html Sent from the Apache Ignite Users mailing list archive at Nabble.com.