Skip to content

Concurrent resharing of EdDSA and ECDSA fails with "nats: no responders available for request" #143

@treeforest

Description

@treeforest

Describe:

When attempting to perform a concurrent resharing session for both EdDSA and ECDSA for the same wallet, the process fails immediately for one of the protocols (usually the one initialized slightly later). The error reported is nats: no responders available for request, indicating a failure in the NATS transport layer where a message is sent before the peer has subscribed to the corresponding topic.

Steps to Reproduce:

  1. Initialize a resharing session.
  2. Trigger reshare for EdDSA and ECDSA concurrently (using errgroup or multiple goroutines).
  3. Observe the node logs.

Logs:

2026-02-05 15:55:25.000 INF Creating resharing session isNewPeer=false min ready=3 participantPeerIDs=["0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0fd5e636-fb34-4485-8df0-56bf283272a1"] ready count=3 readyPeers=["0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0fd5e636-fb34-4485-8df0-56bf283272a1"] type=session_eddsa version=1
2026-02-05 15:55:25.000 INF Creating resharing session isNewPeer=true min ready=3 participantPeerIDs=["0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0fd5e636-fb34-4485-8df0-56bf283272a1"] ready count=3 readyPeers=["0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0fd5e636-fb34-4485-8df0-56bf283272a1"] type=session_eddsa version=1
2026-02-05 15:55:25.000 INF Initializing eddsa resharing session with partyID: {1,keygen}, peerIDs [{0,keygen} {1,keygen} {2,keygen}]
2026-02-05 15:55:25.000 INF [INITIALIZED] Initialized eddsa resharing session successfully partyID: {1,keygen}, peerIDs [{0,keygen} {1,keygen} {2,keygen}], walletID a155d7c0-56e0-43db-8233-ecadce72e7a8, oldThreshold = 2, newThreshold = 2
2026-02-05 15:55:25.000 INF Initializing eddsa resharing session with partyID: {1,reshare}, peerIDs [{0,reshare} {1,reshare} {2,reshare}]
2026-02-05 15:55:25.000 INF [INITIALIZED] Initialized eddsa resharing session successfully partyID: {1,reshare}, peerIDs [{0,reshare} {1,reshare} {2,reshare}], walletID a155d7c0-56e0-43db-8233-ecadce72e7a8, oldThreshold = 2, newThreshold = 2
2026-02-05 15:55:25.000 INF Starting resharing partyID={"id":"eae2dfee-0077-42fd-a78e-b3d584d52f8a","index":1,"key":"MGZkNWU2MzYtZmIzNC00NDg1LThkZjAtNTZiZjI4MzI3MmExOjE=","moniker":"keygen"} walletID=a155d7c0-56e0-43db-8233-ecadce72e7a8
2026-02-05 15:55:25.000 INF Starting resharing partyID={"id":"ace0348f-40ec-4906-bf00-cc92ca27159f","index":1,"key":"MGZkNWU2MzYtZmIzNC00NDg1LThkZjAtNTZiZjI4MzI3MmExOjI=","moniker":"reshare"} walletID=a155d7c0-56e0-43db-8233-ecadce72e7a8
2026-02-05 15:55:26.000 INF Generated public key bytes pubKeyBytes=7ic9VO9OZg7DvTff2sYGOG7Cpw9faifH4yVx3Z8W7D4= walletID=a155d7c0-56e0-43db-8233-ecadce72e7a8
2026-02-05 15:55:26.000 INF Reshare session finished pubKey=ee273d54ef4e660ec3bd37dfdac606386ec2a70f5f6a27c7e32571dd9f16ec3e walletID=a155d7c0-56e0-43db-8233-ecadce72e7a8
2026-02-05 15:55:26.000 INF Publishing message consumerName=mpc_reshare_result topic=mpc.mpc_reshare_result.2ad802c4-4968-4b62-a7ec-435ca04462c0
2026-02-05 15:55:26.000 INF [COMPLETED RESHARE] Successfully published walletID=a155d7c0-56e0-43db-8233-ecadce72e7a8
2026-02-05 15:55:26.000 INF Creating resharing session isNewPeer=false min ready=3 participantPeerIDs=["0fd5e636-fb34-4485-8df0-56bf283272a1","0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae"] ready count=3 readyPeers=["0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0fd5e636-fb34-4485-8df0-56bf283272a1"] type=session_ecdsa version=1
2026-02-05 15:55:26.000 INF Creating resharing session isNewPeer=true min ready=3 participantPeerIDs=["0fd5e636-fb34-4485-8df0-56bf283272a1","0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae"] ready count=3 readyPeers=["0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0fd5e636-fb34-4485-8df0-56bf283272a1"] type=session_ecdsa version=1
2026-02-05 15:55:26.000 INF Initializing ecdsa resharing session with partyID: {1,keygen}, newPartyIDs [{0,keygen} {1,keygen} {2,keygen}]
2026-02-05 15:55:26.000 INF [INITIALIZED] Initialized resharing session successfully partyID: {1,keygen}, peerIDs [{0,keygen} {1,keygen} {2,keygen}], walletID a155d7c0-56e0-43db-8233-ecadce72e7a8, oldThreshold = 2, newThreshold = 2
2026-02-05 15:55:26.000 INF Initializing ecdsa resharing session with partyID: {1,reshare}, newPartyIDs [{0,reshare} {1,reshare} {2,reshare}]
2026-02-05 15:55:26.000 INF [INITIALIZED] Initialized resharing session successfully partyID: {1,reshare}, peerIDs [{0,reshare} {1,reshare} {2,reshare}], walletID a155d7c0-56e0-43db-8233-ecadce72e7a8, oldThreshold = 2, newThreshold = 2
2026-02-05 15:55:26.000 INF Starting resharing partyID={"id":"29a8a42d-3252-49a2-a6f1-d9229720a91d","index":1,"key":"MGZkNWU2MzYtZmIzNC00NDg1LThkZjAtNTZiZjI4MzI3MmExOjE=","moniker":"keygen"} walletID=a155d7c0-56e0-43db-8233-ecadce72e7a8
2026-02-05 15:55:26.000 INF Starting resharing partyID={"id":"8a10103c-412a-4bcf-bcd2-5041e05b38ef","index":1,"key":"MGZkNWU2MzYtZmIzNC00NDg1LThkZjAtNTZiZjI4MzI3MmExOjI=","moniker":"reshare"} walletID=a155d7c0-56e0-43db-8233-ecadce72e7a8
2026-02-05 15:55:31.000 INF Generated public key bytes pubKeyBytes=EPlWZlgO8+KJJawP/Ehq0ATy7N5gL4CLXCNveOWJmHCcwg3keE/AZcrY7VGw8MjnyxmEfXIG9EttOOkWGbkV9A== walletID=a155d7c0-56e0-43db-8233-ecadce72e7a8
2026-02-05 15:55:31.000 INF Reshare session finished pubKey=10f95666580ef3e28925ac0ffc486ad004f2ecde602f808b5c236f78e58998709cc20de4784fc065cad8ed51b0f0c8e7cb19847d7206f44b6d38e91619b915f4 walletID=a155d7c0-56e0-43db-8233-ecadce72e7a8
2026-02-05 15:55:31.000 INF Publishing message consumerName=mpc_reshare_result topic=mpc.mpc_reshare_result.646f7ea5-c8ef-469d-bdc7-7fd621ade952
2026-02-05 15:55:31.000 INF [COMPLETED RESHARE] Successfully published walletID=a155d7c0-56e0-43db-8233-ecadce72e7a8
2026-02-05 15:55:31.000 INF Initializing session with partyID: {1,keygen}, peerIDs [{0,keygen} {1,keygen} {2,keygen}]
2026-02-05 15:55:31.000 INF [INITIALIZED] Initialized session successfully partyID: {1,keygen}, peerIDs [{0,keygen} {1,keygen} {2,keygen}], walletID baa2816d-1916-458a-8f69-de0e4705eb30, threshold = 2
2026-02-05 15:55:31.000 INF Initializing session with partyID: {1,keygen}, peerIDs [{0,keygen} {1,keygen} {2,keygen}]
2026-02-05 15:55:31.000 INF [INITIALIZED] Initialized session successfully partyID: {1,keygen}, peerIDs [{0,keygen} {1,keygen} {2,keygen}], walletID baa2816d-1916-458a-8f69-de0e4705eb30, threshold = 2
2026-02-05 15:55:31.000 INF Starting to generate key ECDSA walletID=baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:31.000 INF Starting to generate key EDDSA walletID=baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:36.000 INF KeygenConsumer: Completed keygen event; reply received
2026-02-05 15:55:36.000 INF Publishing message consumerName=mpc_keygen_result topic=mpc.mpc_keygen_result.baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:36.000 INF [COMPLETED KEY GEN] Key generation completed successfully walletID=baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 INF Publishing message consumerName=mpc_keygen_result topic=mpc.mpc_keygen_result.baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 INF Creating resharing session isNewPeer=false min ready=3 participantPeerIDs=["0fd5e636-fb34-4485-8df0-56bf283272a1","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b"] ready count=3 readyPeers=["0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0fd5e636-fb34-4485-8df0-56bf283272a1"] type=session_eddsa version=1
2026-02-05 15:55:37.000 INF Creating resharing session isNewPeer=true min ready=3 participantPeerIDs=["0fd5e636-fb34-4485-8df0-56bf283272a1","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b"] ready count=3 readyPeers=["0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0fd5e636-fb34-4485-8df0-56bf283272a1"] type=session_eddsa version=1
2026-02-05 15:55:37.000 INF Initializing eddsa resharing session with partyID: {1,keygen}, peerIDs [{0,keygen} {1,keygen} {2,keygen}]
2026-02-05 15:55:37.000 INF [INITIALIZED] Initialized eddsa resharing session successfully partyID: {1,keygen}, peerIDs [{0,keygen} {1,keygen} {2,keygen}], walletID baa2816d-1916-458a-8f69-de0e4705eb30, oldThreshold = 2, newThreshold = 2
2026-02-05 15:55:37.000 INF Initializing eddsa resharing session with partyID: {1,reshare}, peerIDs [{0,reshare} {1,reshare} {2,reshare}]
2026-02-05 15:55:37.000 INF [INITIALIZED] Initialized eddsa resharing session successfully partyID: {1,reshare}, peerIDs [{0,reshare} {1,reshare} {2,reshare}], walletID baa2816d-1916-458a-8f69-de0e4705eb30, oldThreshold = 2, newThreshold = 2
2026-02-05 15:55:37.000 INF Starting resharing partyID={"id":"c35c649d-5bdb-4e00-960d-3f3370c5ac7b","index":1,"key":"MGZkNWU2MzYtZmIzNC00NDg1LThkZjAtNTZiZjI4MzI3MmExOjE=","moniker":"keygen"} walletID=baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 INF Starting resharing partyID={"id":"e1d81757-3b02-4160-9af2-08745ba9c159","index":1,"key":"MGZkNWU2MzYtZmIzNC00NDg1LThkZjAtNTZiZjI4MzI3MmExOjI=","moniker":"reshare"} walletID=baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 INF Generated public key bytes pubKeyBytes=rTKOWtZCy50KT9+y+o80CCgB51JK2rVIAFF8UmlrLkU= walletID=baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 INF Reshare session finished pubKey=ad328e5ad642cb9d0a4fdfb2fa8f34082801e7524adab54800517c52696b2e45 walletID=baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 INF Publishing message consumerName=mpc_reshare_result topic=mpc.mpc_reshare_result.e46c426a-2956-48df-bc14-1e78277ebf12
2026-02-05 15:55:37.000 INF [COMPLETED RESHARE] Successfully published walletID=baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 INF Creating resharing session isNewPeer=false min ready=3 participantPeerIDs=["0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0fd5e636-fb34-4485-8df0-56bf283272a1"] ready count=3 readyPeers=["0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0fd5e636-fb34-4485-8df0-56bf283272a1"] type=session_ecdsa version=1
2026-02-05 15:55:37.000 INF Creating resharing session isNewPeer=true min ready=3 participantPeerIDs=["0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0fd5e636-fb34-4485-8df0-56bf283272a1"] ready count=3 readyPeers=["0f647a3d-a4d6-4ae2-9c7a-cd78adcde08b","1e645b29-eba1-440e-8a39-bd1fa77b21ae","0fd5e636-fb34-4485-8df0-56bf283272a1"] type=session_ecdsa version=1
2026-02-05 15:55:37.000 INF Initializing ecdsa resharing session with partyID: {1,keygen}, newPartyIDs [{0,keygen} {1,keygen} {2,keygen}]
2026-02-05 15:55:37.000 INF [INITIALIZED] Initialized resharing session successfully partyID: {1,keygen}, peerIDs [{0,keygen} {1,keygen} {2,keygen}], walletID baa2816d-1916-458a-8f69-de0e4705eb30, oldThreshold = 2, newThreshold = 2
2026-02-05 15:55:37.000 INF Initializing ecdsa resharing session with partyID: {1,reshare}, newPartyIDs [{0,reshare} {1,reshare} {2,reshare}]
2026-02-05 15:55:37.000 INF [INITIALIZED] Initialized resharing session successfully partyID: {1,reshare}, peerIDs [{0,reshare} {1,reshare} {2,reshare}], walletID baa2816d-1916-458a-8f69-de0e4705eb30, oldThreshold = 2, newThreshold = 2
2026-02-05 15:55:37.000 INF Starting resharing partyID={"id":"bf415424-d190-413a-86ad-f0324f90c98b","index":1,"key":"MGZkNWU2MzYtZmIzNC00NDg1LThkZjAtNTZiZjI4MzI3MmExOjE=","moniker":"keygen"} walletID=baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 INF Starting resharing partyID={"id":"6af2cdf0-a9e2-44ef-b130-901698e7bdec","index":1,"key":"MGZkNWU2MzYtZmIzNC00NDg1LThkZjAtNTZiZjI4MzI3MmExOjI=","moniker":"reshare"} walletID=baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 ERR ../../../root/mpc/mpcium/pkg/logger/logger.go:119 > Failed to send direct message error="nats: no responders available for request" attempt=1 topic=resharing:direct:ecdsa:0fd5e636-fb34-4485-8df0-56bf283272a1:1e645b29-eba1-440e-8a39-bd1fa77b21ae:baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 ERR ../../../root/mpc/mpcium/pkg/logger/logger.go:119 > Failed to send direct message error="nats: no responders available for request" attempt=2 topic=resharing:direct:ecdsa:0fd5e636-fb34-4485-8df0-56bf283272a1:1e645b29-eba1-440e-8a39-bd1fa77b21ae:baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 ERR ../../../root/mpc/mpcium/pkg/logger/logger.go:119 > Failed to send direct message error="nats: no responders available for request" attempt=3 topic=resharing:direct:ecdsa:0fd5e636-fb34-4485-8df0-56bf283272a1:1e645b29-eba1-440e-8a39-bd1fa77b21ae:baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 ERR ../../../root/mpc/mpcium/pkg/logger/logger.go:119 > Failed in SendToOther direct message error="All attempts fail:\n#1: nats: no responders available for request\n#2: nats: no responders available for request\n#3: nats: no responders available for request" topic=resharing:direct:ecdsa:0fd5e636-fb34-4485-8df0-56bf283272a1:1e645b29-eba1-440e-8a39-bd1fa77b21ae:baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 ERR ../../../root/mpc/mpcium/pkg/logger/logger.go:119 > Old reshare session error error="failed to send direct message to All attempts fail:\n#1: nats: no responders available for request\n#2: nats: no responders available for request\n#3: nats: no responders available for request"
2026-02-05 15:55:37.000 WRN Reshare session error error="failed to send direct message to All attempts fail:\n#1: nats: no responders available for request\n#2: nats: no responders available for request\n#3: nats: no responders available for request" context="Old reshare session error" errorCode=ERROR_PEER_UNAVAILABLE keyType=secp256k1 newThreshold=2 walletID=baa2816d-1916-458a-8f69-de0e4705eb30
2026-02-05 15:55:37.000 INF Publishing message consumerName=mpc_reshare_result topic=mpc.mpc_reshare_result.baa2816d-1916-458a-8f69-de0e4705eb30

Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions