hiero-ledger / hiero-ledger/hiero-consensus-node
Yahcli account create returns `INVALID_NODE_ACCOUNT`
- Dominant language
- Java
- Stars
- 406
- Forks
- 226
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 210
Description
DevOps attempted to run an account create command in mainnet with Yahcli, but received an `INVALID_NODE_ACCOUNT` error with version `0.7.9`. They tried the same command with version `0.3.0`, which was successful. We need to figure out why the first one didn't work.
Yahcli version that didn't work: `0.7.9`
Yahcli version that did work: `0.3.0`
Command run:
```
docker run -it -v $(pwd):/launch gcr.io/hedera-registry/yahcli:0.7.9 --fixed-fee 100000000 --node-account 4 --network mainnet -p 950 accounts create -a 100
```
Stack trace (from version 0.7.9):
```
Log level is WARN
Targeting mainnet, paying with accountNum: 950
2025-11-20 02:23:01.041 INFO 45 MapPropertySource - Initializing a MapPropertySource from {fees.fixedOffer=100000000, fees.useFixedOffer=true, nodes=[redacted], default.payer.pemKeyLoc=mainnet/keys/account950.pem, default.node=4, default.payer=0.0.950}
2025-11-20 02:23:01.698 INFO 75 ConfigProviderBase - Properties file data/config/genesis.properties does not exist and won't be used as configuration source
2025-11-20 02:23:01.700 INFO 75 ConfigProviderBase - Properties file data/config/application.properties does not exist and won't be used as configuration source
2025-11-20 02:23:02.099 INFO 859 HapiSpec - 'DoCreate' - test suite started !
2025-11-20 02:23:02.190 INFO 898 HapiSpec - 'DoCreate' finished initial execution of NewSpecKey{name=newKey}
Creation attempt #1...2025-11-20 02:23:02.937 ERROR 50 CustomSpecAssert - Operation 'HapiCryptoCreate{sigs=2, account=newAccount, balance=10000000000}' :: Wrong precheck status! Expected one of [OK, BUSY], actual INVALID_NODE_ACCOUNT
2025-11-20 02:23:02.938 WARN 222 HapiSpecOperation - 'DoCreate' - CustomSpecAssert failed - com.hedera.services.bdd.spec.exceptions.HapiTxnPrecheckStateException: Wrong precheck status! Expected one of [OK, BUSY], actual INVALID_NODE_ACCOUNT!
java.lang.IllegalStateException: com.hedera.services.bdd.spec.exceptions.HapiTxnPrecheckStateException: Wrong precheck status! Expected one of [OK, BUSY], actual INVALID_NODE_ACCOUNT
at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.handleExec(CustomSpecAssert.java:51) ~[yahcli.jar:?]
at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.executeHederaOps(CustomSpecAssert.java:31) ~[yahcli.jar:?]
at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor(CustomSpecAssert.java:25) ~[yahcli.jar:?]
at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor(CustomSpecAssert.java:56) ~[yahcli.jar:?]
at com.hedera.services.yahcli.suites.CreateSuite.lambda$doCreate$1(CreateSuite.java:113) ~[yahcli.jar:?]
at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.submitOp(CustomSpecAssert.java:72) ~[yahcli.jar:?]
at com.hedera.services.bdd.spec.HapiSpecOperation.execFor(HapiSpecOperation.java:208) ~[yahcli.jar:?]
at com.hedera.services.bdd.spec.HapiSpec.exec(HapiSpec.java:889) ~[yahcli.jar:?]
at com.hedera.services.bdd.spec.HapiSpec.run(HapiSpec.java:685) ~[yahcli.jar:?]
at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
at com.hedera.services.bdd.suites.HapiSuite.runSequentialSpecs(HapiSuite.java:273) ~[yahcli.jar:?]
at com.hedera.services.bdd.suites.HapiSuite.runSuite(HapiSuite.java:231) [yahcli.jar:?]
at com.hedera.services.bdd.suites.HapiSuite.runSuiteSync(HapiSuite.java:203) [yahcli.jar:?]
at com.hedera.services.yahcli.commands.accounts.CreateCommand.call(CreateCommand.java:104) [yahcli.jar:?]
at com.hedera.services.yahcli.commands.accounts.CreateCommand.call(CreateCommand.java:17) [yahcli.jar:?]
at picocli.CommandLine.executeUserObject(CommandLine.java:2031) [yahcli.jar:?]
at picocli.CommandLine.access$1500(CommandLine.java:148) [yahcli.jar:?]
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469) [yahcli.jar:?]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2461) [yahcli.jar:?]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2423) [yahcli.jar:?]
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277) [yahcli.jar:?]
at picocli.CommandLine$RunLast.execute(CommandLine.java:2425) [yahcli.jar:?]
at picocli.CommandLine.execute(CommandLine.java:2174) [yahcli.jar:?]
at com.hedera.services.yahcli.Yahcli.main(Yahcli.java:104) [yahcli.jar:?]
Caused by: com.hedera.services.bdd.spec.exceptions.HapiTxnPrecheckStateException: Wrong precheck status! Expected one of [OK, BUSY], actual INVALID_NODE_ACCOUNT
at com.hedera.services.bdd.spec.transactions.HapiTxnOp.submitOp(HapiTxnOp.java:288) ~[yahcli.jar:?]
at com.hedera.services.bdd.spec.HapiSpecOperation.execFor(HapiSpecOperation.java:208) ~[yahcli.jar:?]
at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.handleExec(CustomSpecAssert.java:48) ~[yahcli.jar:?]
... 23 more
2025-11-20 02:23:03.110 INFO 947 HapiSpec - 'DoCreate' - final status: FAILED!
.!. FAILED to create a new account with 10000000000 tinybars , signatureRequired false and memo ''
```
Success message (from 0.3.0):
```
Log level is WARN
Targeting mainnet, paying with 0.0.950
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
Creation attempt #1...SUCCESS
.i. SUCCESS - account 0.0.10117431 has been created with balance 10000000000 tinybars and memo ''
```
Contributor guide
Research direction
Reproduce the supplied Docker command, then trace the account-create path through CreateCommand.java, HapiTxnOp.java, and the precheck handling shown in the stack trace. Compare the relevant behavior between Yahcli 0.7.9 and 0.3.0; done means identifying why node account 4 is rejected in the newer version and documenting or correcting the regression.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, java
- Domain
- backend, cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100