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

Vault Query fails to process states upon CorDapp Contract upgrade

Description

The following sequence of events were executed:
1. Deploy Version 1 of Finance Contract CorDapp, and issue some Cash.
2. Stop node, remove Version 1 cordapp from nodes /cordapps directory
3. Deploy Version 2 of Finance Contract CorDapp (this has a single new boolean state field), and issue some more Cash
4. Attempt to obtain the nodes Cash States by querying the vault.

The following exception is observed upon issuing the following Vault Query command from the nodes CRaSH shell:

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 [ERROR] 2019-01-21T17:16:32,348Z [rpc-server-handler-pool-0] proxies.ExceptionSerialisingRpcOpsProxy.log - Error during RPC invocation [errorCode=1mx5ajh, moreInformationAt=https://errors.corda.net/OS/5.0-SNAPSHOT/1mx5ajh] {actor_id=interna lShell, actor_owning_identity=O=BankOfCorda, L=London, C=GB, actor_store_id=NODE_CONFIG, invocation_id=917d8b3c-2d9a-4ec9-bcb8-ea15753b21a7, invocation_timestamp=2019-01-21T17:16:32.082Z, origin=internalShell, session_id=20494dc6-7336-4931-b3c2-37439dc7a94b, session_timestamp=2019-01-21T17:16:31.898Z} java.lang.reflect.UndeclaredThrowableException: null at com.sun.proxy.$Proxy35.vaultQuery(Unknown Source) ~[?:?] at net.corda.node.internal.rpc.proxies.AuthenticatedRpcOpsProxy.vaultQuery(AuthenticatedRpcOpsProxy.kt) ~[corda-node-5.0-SNAPSHOT.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_171] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_171] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_171] at net.corda.node.internal.InvocationHandlerTemplate$DefaultImpls.invoke(InvocationHandlerTemplate.kt:16) ~[corda-node-5.0-SNAPSHOT.jar:?] at net.corda.node.internal.rpc.proxies.ExceptionSerialisingRpcOpsProxy$ErrorSerialisingInvocationHandler.invoke(ExceptionSerialisingRpcOpsProxy.kt:36) ~[corda-node-5.0-SNAPSHOT.jar:?] at com.sun.proxy.$Proxy35.vaultQuery(Unknown Source) ~[?:?] at net.corda.node.internal.rpc.proxies.ExceptionSerialisingRpcOpsProxy.vaultQuery(ExceptionSerialisingRpcOpsProxy.kt) ~[corda-node-5.0-SNAPSHOT.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_171] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_171] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_171] at net.corda.node.internal.InvocationHandlerTemplate$DefaultImpls.invoke(InvocationHandlerTemplate.kt:16) ~[corda-node-5.0-SNAPSHOT.jar:?] at net.corda.node.internal.rpc.proxies.ThreadContextAdjustingRpcOpsProxy$ThreadContextAdjustingInvocationHandler$invoke$1.invoke(ThreadContextAdjustingRpcOpsProxy.kt:25) ~[corda-node-5.0-SNAPSHOT.jar:?] at net.corda.core.internal.ClassLoadingUtilsKt.executeWithThreadContextClassLoader(ClassLoadingUtils.kt:36) ~[corda-core-5.0-SNAPSHOT.jar:?] at net.corda.node.internal.rpc.proxies.ThreadContextAdjustingRpcOpsProxy$ThreadContextAdjustingInvocationHandler.invoke(ThreadContextAdjustingRpcOpsProxy.kt:25) ~[corda-node-5.0-SNAPSHOT.jar:?] at com.sun.proxy.$Proxy35.vaultQuery(Unknown Source) ~[?:?] at net.corda.node.internal.rpc.proxies.ThreadContextAdjustingRpcOpsProxy.vaultQuery(ThreadContextAdjustingRpcOpsProxy.kt) ~[corda-node-5.0-SNAPSHOT.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_171] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_171] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_171] at net.corda.node.services.rpc.RPCServer.invokeRpc(RPCServer.kt:360) ~[corda-node-5.0-SNAPSHOT.jar:?] at net.corda.node.services.rpc.RPCServer.access$invokeRpc(RPCServer.kt:77) ~[corda-node-5.0-SNAPSHOT.jar:?] at net.corda.node.services.rpc.RPCServer$clientArtemisMessageHandler$4.run(RPCServer.kt:333) ~[corda-node-5.0-SNAPSHOT.jar:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_171] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_171] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[?:1.8.0_171] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[?:1.8.0_171] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_171] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_171] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171] Caused by: java.lang.Exception: Malformed transaction, OUTPUTS_GROUP at index 1 cannot be deserialised

Status

Assignee

James Higgs

Reporter

Jose Coll

Priority

High

Labels

None

Severity

Medium

Fix versions

Ported to...

None

Feature Team

Corda Core

Affects versions

Corda 4 RC02