Bug description
Identity registration gets permanently stuck in InProgress after the transactor HTTP call fails. Once stuck, the identity can never be registered through the daemon — not even after clearing BoltDB, restarting, or changing RPC endpoints.
This is essentially the same bug described in #3029 and #3090, but confirmed still present in the latest release.
Steps to reproduce
- Install
myst 1.38.1 on a machine where the default RPC (polygon.drpc.org) is blocked or unreachable
- The daemon auto-generates an identity on first start
- Run
myst cli identities register <id>
- The transactor call fails (RPC unreachable)
- Identity is stuck
InProgress forever
Environment
- OS: Ubuntu 24.04
- Node version:
1.38.1 (build 25002478138, commit e0b746e1, 2026-04-27 — LATEST release)
- Identity: system-generated by daemon
- RPC tested:
polygon.drpc.org (default, blocked), 1rpc.io/matic (works for balance queries)
Error
[ERROR] Could not queue entry: registration in progress
Tequilapi:
{"error":{"code":"err_transactor_registration","message":"could not queue entry: registration in progress"},"status":400}
What we tried to fix it (nothing works)
myst cli identities register <id> → stuck
systemctl restart mysterium-node → same
- Deleted
/var/lib/mysterium-node/mainnet/db/myst.db + restart → same
- Deleted
/var/lib/mysterium-node/keystore/remember.json + restart → same
- Changed
ether.client.rpcl2 via /etc/mysterium-node/config.toml → same
- Created a fresh identity (
myst cli identities new) → unlock fails with "authentication needed: password or unlock"
- Called Tequilapi
POST /identities/<id>/register directly → same 400 "registration in progress"
Logs
ERR tequilapi/endpoints/transactor.go:399 > Failed identity registration request for ID: 0x0996a..., error="failed to fill in identity request: failed to sign identity registration request: failed to sign a registration request: authentication needed: password or unlock"
INF discovery/discovery.go:241 > Identity 0x0996a... not registered, delaying proposal registration until identity is registered
DBG identity/manager.go:153 > Unlocked identity found in cache, skipping keystore: 0x0996a...
Root cause (from code analysis)
- The daemon calls the transactor HTTP endpoint to register the identity
- If that HTTP call fails (timeout, blocked RPC, network issue), the daemon stores the identity as
InProgress in BoltDB
- The daemon never re-checks the on-chain registration status via the Registry contract directly
- Even clearing the entire BoltDB doesn"t help — the state is re-created from the transactor, which still returns the stuck status
- The identity might actually BE registered on-chain, but the daemon has no way to discover this
Expected behavior
- After a transactor call fails, the daemon should fall back to checking the on-chain registration status via the Polygon Registry contract (
isRegisteredFor / isRegistered)
- There should be a way to force-reset a stuck registration:
myst cli identities reset <id> or POST /identities/<id>/registration/reset
- The daemon should periodically re-check
InProgress registrations against the blockchain
Workaround
The only reliable workaround is to register the identity directly via the Registry smart contract on Polygon (registerIdentity()), bypassing the daemon transactor and Tequilapi entirely.
Related issues
This effectively bricks the daemon for new users on restricted networks. The workaround requires blockchain dev skills that most users don"t have.
Bug description
Identity registration gets permanently stuck in
InProgressafter the transactor HTTP call fails. Once stuck, the identity can never be registered through the daemon — not even after clearing BoltDB, restarting, or changing RPC endpoints.This is essentially the same bug described in #3029 and #3090, but confirmed still present in the latest release.
Steps to reproduce
myst1.38.1 on a machine where the default RPC (polygon.drpc.org) is blocked or unreachablemyst cli identities register <id>InProgressforeverEnvironment
1.38.1(build25002478138, commite0b746e1, 2026-04-27 — LATEST release)polygon.drpc.org(default, blocked),1rpc.io/matic(works for balance queries)Error
Tequilapi:
{"error":{"code":"err_transactor_registration","message":"could not queue entry: registration in progress"},"status":400}What we tried to fix it (nothing works)
myst cli identities register <id>→ stucksystemctl restart mysterium-node→ same/var/lib/mysterium-node/mainnet/db/myst.db+ restart → same/var/lib/mysterium-node/keystore/remember.json+ restart → sameether.client.rpcl2via/etc/mysterium-node/config.toml→ samemyst cli identities new) → unlock fails with "authentication needed: password or unlock"POST /identities/<id>/registerdirectly → same 400 "registration in progress"Logs
Root cause (from code analysis)
InProgressin BoltDBExpected behavior
isRegisteredFor/isRegistered)myst cli identities reset <id>orPOST /identities/<id>/registration/resetInProgressregistrations against the blockchainWorkaround
The only reliable workaround is to register the identity directly via the Registry smart contract on Polygon (
registerIdentity()), bypassing the daemon transactor and Tequilapi entirely.Related issues
InProgress#3029 — Proposed mitigation, but the fix seems incomplete or has regressedThis effectively bricks the daemon for new users on restricted networks. The workaround requires blockchain dev skills that most users don"t have.