I am trying out private transaction using Quorum. Two quorum nodes N1 and N2 configured to participate in the private transaction.

I deployed a contract which is private for N1 and N2.

I issue transaction (invoke contract method) using A1 account (address) and use public key of N2 node. Note that account A1 is not present on either of the nodes N1/N2.

I connect to Node N1 to issue the transaction.

I receive following error when the transaction is sent to the N1 node.

Error processing transaction request: account is locked

I do not get such an error in following scenario:

  1. Deploy public contract

  2. Issue transaction (invoke contract method) using A1 account (address) by connecting to node N1

Im using web3j-quorum API to connect to the quorum nodes.

Please help to have the issue resolved.

Thanks in advance.

Regards, S

  • you may need to unlock an account first with web3.personal.unlockAccount(account,password) Oct 9, 2017 at 17:42
  • Tried unlocking the account. Didn't help :(
    – dives
    Oct 10, 2017 at 5:56
  • any error message displayed? Oct 10, 2017 at 7:10
  • No error in geth log. Following is stack trace received in DApp java.util.concurrent.ExecutionException: java.lang.RuntimeException: Error processing transaction request: account is locked ... at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357) at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895) ... Caused by: java.lang.RuntimeException: Error processing transaction request: account is locked at org.web3j.tx.TransactionManager.processResponse(TransactionManager.java:61) at org.web3j.tx.TransactionManager.executeTransaction
    – dives
    Oct 10, 2017 at 7:58
  • Just observed following: If i copy A1 account file on the node N1, Transaction could complete successfully. I did not understand why this happened. Since, this is not needed if I perform public transaction. Please help me to understand this behavior.
    – dives
    Oct 17, 2017 at 9:27

1 Answer 1


As the doc says:

Note that if Party A does not receive a response/receives a Nack from Party B then the Transaction will not be propagated to the network. It is a prerequisite for the recipients to store the communicated payload


I think one node that knows about account A needs to store the private state

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.