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

Flow failing due to "Flow sessions were not provided" for its own identity

Description

This test uses the Daywatch network map - in order to connect to daywatch you will need a machine with a public IP address (i.e. not one within the office obscured by NAT)

This happens with:
Corda 4, with the corda-finance-workflows and corda-finance-contracts from v4.

I also tested it (but the issue doesn't occur with)
Corda Ent 4.0-RC04, with the corda-finance-workflows ENT 4.0-RC04 and corda-finance-contracts OS-4.0

Unzip the attached lost-identity-repro.zip
Edit the node.conf in PartyA to give it a unique name (PartyA-xxxxxxxx) and change the P2P address to your public IP address
Edit the node.conf in PartyB to give it a unique name (PartyB-xxxxxxxx) and change the P2P address to your public IP address

Copy corda.jar to the directory and the relevant versions of corda-finance-contracts.jar corda-finance-workflows.jar to the cordapps dir for both PartyA and PartyB.

Navigate to the PartyA directory and run
java -jar corda.jar initial-registration --network-root-truststore=..\daywatch-network-root-truststore.jks --network-root-truststore-password=password --log-to-console

Navigate to the PartyB directory and run
java -jar corda.jar initial-registration --network-root-truststore=..\daywatch-network-root-truststore.jks --network-root-truststore-password=password --log-to-console

Navigate to PartyA and run
java -jar corda.jar

Navigate to PartyB and run
java -jar corda.jar

On PartyA run
flow start CashIssueFlow amount: "100 GBP", issuerBankPartyRef: "1234" , notary: "CN=Notary - East US, O=R3 HoldCo LLC, L=New York, C=US"
flow start CashPaymentFlow amount: "10 GBP", recipient: "C=GB,L=London,O=PartyB-xxxxxx", anonymous: true, notary: "CN=Notary - East US, O=R3 HoldCo LLC, L=New York, C=US"

On PartyB run:
flow start CashPaymentFlow amount: "5 GBP", recipient: "C=GB,L=London,O=PartyA-xxxxxx", anonymous: true, notary: "CN=Notary - East US, O=R3 HoldCo LLC, L=New York, C=US"

PartyB should fail to transfer the cash with the error:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 [INFO ] 2019-03-04T11:26:45,419Z [Node thread-1] corda.flow.run - Flow raised an error... sending it to flow hospital {actor_id=corda, actor_owning_identity=O=PartyB-327aa32e-08f8-4cf3-a566-0ce6bbdcb994, L=London, C=GB, actor_store_id=NODE_CONFIG, fiber-id=10000002, flow-id=c3d1cc9f-221e-401d-85f3-b021edf820ff, invocation_id=82c45912-1320-4c2c-b651-47953af8b12c, invocation_timestamp=2019-03-04T11:26:43.462Z, origin=corda, session_id=a80d5e2c-1339-440e-95ba-ea92d148d030, session_timestamp=2019-03-04T11:26:42.925Z, thread-id=220, tx_id=909CA79E619773BC50EF790CAA5E1C3500F9F1841E6305BE09D3F7C667DFCD8B} java.lang.IllegalArgumentException: Flow sessions were not provided for the following transaction participants: [O=PartyB-327aa32e-08f8-4cf3-a566-0ce6bbdcb994, L=London, C=GB] at net.corda.core.flows.FinalityFlow.call(FinalityFlow.kt:143) ~[corda-core-4.0.jar:?] at net.corda.core.flows.FinalityFlow.call(FinalityFlow.kt:39) ~[corda-core-4.0.jar:?] at net.corda.node.services.statemachine.FlowStateMachineImpl.subFlow(FlowStateMachineImpl.kt:290) ~[corda-node-4.0.jar:?] at net.corda.core.flows.FlowLogic.subFlow(FlowLogic.kt:314) ~[corda-core-4.0.jar:?] at net.corda.finance.flows.AbstractCashFlow.finaliseTx(AbstractCashFlow.kt:28) ~[?:?] at net.corda.finance.flows.CashPaymentFlow.call(CashPaymentFlow.kt:84) ~[?:?] at net.corda.finance.flows.CashPaymentFlow.call(CashPaymentFlow.kt:32) ~[?:?] at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:228) ~[corda-node-4.0.jar:?] at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:45) ~[corda-node-4.0.jar:?] at co.paralleluniverse.fibers.Fiber.run1(Fiber.java:1092) ~[quasar-core-0.7.10-jdk8.jar:0.7.10] at co.paralleluniverse.fibers.Fiber.exec(Fiber.java:788) ~[quasar-core-0.7.10-jdk8.jar:0.7.10] at co.paralleluniverse.fibers.RunnableFiberTask.doExec(RunnableFiberTask.java:100) ~[quasar-core-0.7.10-jdk8.jar:0.7.10] at co.paralleluniverse.fibers.RunnableFiberTask.run(RunnableFiberTask.java:91) ~[quasar-core-0.7.10-jdk8.jar:0.7.10] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_201] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_201] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[?:1.8.0_201] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[?:1.8.0_201] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_201] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_201] at net.corda.node.utilities.AffinityExecutor$ServiceAffinityExecutor$1$thread$1.run(AffinityExecutor.kt:63) ~[corda-node-4.0.jar:?]

Status

Assignee

Dimos Raptis

Reporter

Anthony Keenan

Priority

Medium

Labels

None

Severity

Medium

Fix versions

Ported to...

None

Feature Team

Corda Core

Affects versions

Corda 4