We're updating the issue view to help you get more done. 

RPC v4 client unable to subscribe to progress tracker events from Corda 3.3 node

Description

Checkout the releases/release-V3 branch of enterprise
Update the root build.gradle to set the release version to 3.4-SNAPSHOT
Run gradlew install -x test (if on windows/Mac OS you need to comment out lines 239-242 in node/dist/build.gradle

git clone https://github.com/anthonykeenan/samples
cd samples/obligation-cordapp
git checkout release-V3-enterprise-serialization-repro-2
gradlew :kotlin-source:deployNodes

Run kotlin-source/build/nodes/runnodes

Once all nodes have started

navigate to Main.kt in the rpc-client project.
Run fun Main
This issues cash with an RPC client using the latest enterprise snapshot and the Finance 3.3 cordapp

It fails to issue cash on the V3.3 node with:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 Exception in thread "main" net.corda.client.rpc.RPCException: net.corda.core.utilities.Try$Success (erased) -> value(*) -> Cannot construct evolution serializer for remote type net.corda.core.messaging.DataFeed<java.lang.Integer, java.lang.Integer> snapshot: int updates: rx.Observable<java.lang.Integer> Local type class java.lang.Integer of property snapshot is not assignable from remote type int at net.corda.client.rpc.internal.RPCClientProxyHandler.invoke(RPCClientProxyHandler.kt:279) at com.sun.proxy.$Proxy3.startTrackedFlowDynamic(Unknown Source) at net.obligation.rpcClient.MainKt.cashIssue(Main.kt:26) at net.obligation.rpcClient.MainKt.main(Main.kt:15) Caused by: net.corda.serialization.internal.amqp.EvolutionSerializationException: net.corda.core.utilities.Try$Success (erased) -> value(*) -> Cannot construct evolution serializer for remote type net.corda.core.messaging.DataFeed<java.lang.Integer, java.lang.Integer> snapshot: int updates: rx.Observable<java.lang.Integer> Local type class java.lang.Integer of property snapshot is not assignable from remote type int at net.corda.serialization.internal.amqp.DefaultEvolutionSerializerFactory.validateCompatibility(EvolutionSerializerFactory.kt:80) at net.corda.serialization.internal.amqp.DefaultEvolutionSerializerFactory.getEvolutionSerializer(EvolutionSerializerFactory.kt:56) at net.corda.serialization.internal.amqp.DefaultEvolutionSerializerFactory.getEvolutionSerializer(EvolutionSerializerFactory.kt:40) at net.corda.serialization.internal.amqp.DefaultRemoteSerializerFactory.getUncached(RemoteSerializerFactory.kt:107) at net.corda.serialization.internal.amqp.DefaultRemoteSerializerFactory.access$getUncached(RemoteSerializerFactory.kt:48) at net.corda.serialization.internal.amqp.DefaultRemoteSerializerFactory$get$1$$special$$inlined$mapValues$lambda$1.invoke(RemoteSerializerFactory.kt:78) at net.corda.serialization.internal.amqp.DefaultRemoteSerializerFactory$get$1$$special$$inlined$mapValues$lambda$1.invoke(RemoteSerializerFactory.kt:48) at net.corda.serialization.internal.amqp.DefaultDescriptorBasedSerializerRegistry.getOrBuild(DescriptorBasedSerializerRegistry.kt:28) at net.corda.serialization.internal.amqp.DefaultRemoteSerializerFactory$get$1.invoke(RemoteSerializerFactory.kt:77) at net.corda.serialization.internal.amqp.DefaultRemoteSerializerFactory$get$1.invoke(RemoteSerializerFactory.kt:48) at net.corda.serialization.internal.amqp.DefaultDescriptorBasedSerializerRegistry.getOrBuild(DescriptorBasedSerializerRegistry.kt:28) at net.corda.serialization.internal.amqp.DefaultRemoteSerializerFactory.get(RemoteSerializerFactory.kt:67) at net.corda.serialization.internal.amqp.ComposedSerializerFactory.get(SerializerFactory.kt) at net.corda.serialization.internal.amqp.DeserializationInput.readObject$serialization(DeserializationInput.kt:172) at net.corda.serialization.internal.amqp.DeserializationInput.readObjectOrNull$serialization(DeserializationInput.kt:147) at net.corda.serialization.internal.amqp.DescribedTypeReadStrategy.readProperty(ComposableTypePropertySerializer.kt:202) at net.corda.serialization.internal.amqp.ComposableTypePropertySerializer.readProperty(ComposableTypePropertySerializer.kt) at net.corda.serialization.internal.amqp.ComposableObjectReader$readObject$$inlined$ifThrowsAppend$lambda$1.invoke(ObjectSerializer.kt:140) at net.corda.serialization.internal.amqp.ComposableObjectReader$readObject$$inlined$ifThrowsAppend$lambda$1.invoke(ObjectSerializer.kt:122) at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:149) at net.corda.serialization.internal.amqp.ComposableObjectReader.readObject(ObjectSerializer.kt:219) at net.corda.serialization.internal.amqp.ComposableObjectSerializer.readObject(ObjectSerializer.kt:91) at net.corda.serialization.internal.amqp.DeserializationInput.readObject$serialization(DeserializationInput.kt:182) at net.corda.serialization.internal.amqp.DeserializationInput.readObjectOrNull$serialization(DeserializationInput.kt:147) at net.corda.serialization.internal.amqp.DeserializationInput$deserialize$1.invoke(DeserializationInput.kt:124) at net.corda.serialization.internal.amqp.DeserializationInput.des(DeserializationInput.kt:99) at net.corda.serialization.internal.amqp.DeserializationInput.deserialize(DeserializationInput.kt:119) at net.corda.serialization.internal.amqp.AbstractAMQPSerializationScheme.deserialize(AMQPSerializationScheme.kt:225) at net.corda.serialization.internal.SerializationFactoryImpl$deserialize$1$1.invoke(SerializationScheme.kt:105) at net.corda.core.serialization.SerializationFactory.withCurrentContext(SerializationAPI.kt:71) at net.corda.serialization.internal.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:105) at net.corda.serialization.internal.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:73) at net.corda.core.serialization.SerializationFactory.asCurrent(SerializationAPI.kt:85) at net.corda.serialization.internal.SerializationFactoryImpl.deserialize(SerializationScheme.kt:105) at net.corda.nodeapi.RPCApi$ServerToClient$Companion.fromClientMessage(RPCApi.kt:373) at net.corda.client.rpc.internal.RPCClientProxyHandler.artemisMessageHandler(RPCClientProxyHandler.kt:309) at net.corda.client.rpc.internal.RPCClientProxyHandler.access$artemisMessageHandler(RPCClientProxyHandler.kt:75) at net.corda.client.rpc.internal.RPCClientProxyHandler$initSessions$1.invoke(RPCClientProxyHandler.kt:519) at net.corda.client.rpc.internal.RPCClientProxyHandler$initSessions$1.invoke(RPCClientProxyHandler.kt:75) at net.corda.client.rpc.internal.RPCClientProxyHandlerKt$sam$org_apache_activemq_artemis_api_core_client_MessageHandler$0.onMessage(RPCClientProxyHandler.kt) at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:1002) at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.access$400(ClientConsumerImpl.java:50) at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:1125) at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42) at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31) at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:66) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)

Status

Assignee

Dominic.Fox@r3.com

Reporter

Anthony Keenan

Priority

High

Labels

None

Severity

Medium

Fix versions

Ported to...

None

Feature Team

Select team

Affects versions

Corda 4
Corda Enterprise 4.0 RC04