Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CreateAccount flow error: Flow sessions were not provided for the following transaction participants #57

Open
adelrustum opened this issue Sep 20, 2019 · 4 comments
Labels
bug Something isn't working

Comments

@adelrustum
Copy link

Corda OS: 4.1
Accounts: 1.0-RC03

Steps to reproduce:

  1. Start node using java -jar corda.jar
  2. Run flow start CreateAccount name: test
  3. Error doesn't happen in a mock network (i.e. using flow tests), it only happens when running flow from inside the node console.

I attached my Intellij debugger to the node and it happens here:

  1. CreateAccount class:
val finalisedTransaction = subFlow(FinalityFlow(signedTransaction, emptyList()))
  1. Which is caused by this check inside FinalityFlow class:
require(missingRecipients.isEmpty()) {
                "Flow sessions were not provided for the following transaction participants: $missingRecipients"
            }
@adelrustum
Copy link
Author

If I run the flow from the node terminal:

  1. externalTxParticipants = The node that started the flow
  2. sessionParties is empty
  3. oldParticipants is empty as well

So missingRecipients is not empty (it has the node the started the flow), which throws that error.

If I run the flow using flow tests, externalTxParticipants is empty; so the list missingRecipients is empty and the check passes.

@adelrustum
Copy link
Author

Further investigation inside FinalityFlow.extractExternalParticipants() shows that the owningKey is different between ltx.outputStates.flatMap { it.participants } and serviceHub.myInfo.legalIdentities even though the CordaX500Name is identical; it's weird because my node that initiated the flow is used as the Issuer of the AccountInfo state and the Issuer is the sole participant so I would think that serviceHub.myInfo.legalIdentities and it.participants should be identical (CordaX500Name and owningKey wise).

@adelrustum
Copy link
Author

I deployed my cordapp to GCP VM with Postgress DB and everything works fine, I guess it only fails when running the node locally (built through deployNodes and ran with java -jar corda.jar).

@roger-that-dev
Copy link

Thanks for flagging this - we'll look into it on Monday. cc: @willhr3 @roastario

@roger-that-dev roger-that-dev added the bug Something isn't working label Sep 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants