The fix for MarshallerContext in IGNITE-7794 has resolved part of the problem with unknown pair, however, we can still trigger a further unknown pair issue with the following sequence:
1) Connect a client node to a server node 2) send a couple of service call so that there are some objects is being marshalled 3a) Stop the server node, removed the work directory (for example, docker remove container that runs the server which would clear the work directory) 3b) leave the client node running so that it tries to reconnect 4) Restart the server, let the client node reconnect and send service call This will still trigger the Unknown Pair issue. Upon further investigation, it seems that in the OptimizedMarshaller, it caches the look up for the existing class descriptor (OptimizedClassDescriptor) in the "clsmap". This is not cleared when the client reconnects it will assume that the server still have the same mapping and therefore attempt to send the invalid class id down the wire. I have a hack to force the OptimizedMarshaller to check with the MarshallerContext before using the cached OptimizedClassDescriptor. This does fix the issue however there is a performance penalty as we need to check the MarhsallerContext I believe the proper fix for this problem should be by adding a hook to clear the clsmap when the client reconnect, but I cannot identify the right place to insert this hook. Can the community suggest a good place where this hook can be inserted? Or is there any alternative fixes that you can suggest? Thanks Sunny