Skip to content

Yachli experiences NPE when passing the wrong node account ID #21974

@akdev

Description

@akdev

In this example the correct --node-account was 3 but we passed in 0 and that caused and NPE. this transaction was for file upload to 150 to perform an upgrade.

submit@transaction-submission-1:~/yahcli$ docker run --interactive --tty --volume $(pwd):/launch gcr.io/hedera-registry/yahcli:0.68 \
  --fixed-fee 100000000 \
  --node-account 0 \
  --network integration \
  --payer 54 \
  sysfiles upload software-zip \
    --bytes-per-append 5140 \
    --appends-per-burst 512
Unable to find image 'gcr.io/hedera-registry/yahcli:0.68' locally
0.68: Pulling from hedera-registry/yahcli
4b3ffd8ccb52: Pull complete
65b4a32fbe43: Pull complete
71abb39f78a1: Pull complete
b32aac563dea: Pull complete
2326993b9fe6: Pull complete
25e57e0743a9: Pull complete
ad3d6acb17ab: Pull complete
a36ef9ec579f: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:a02b3ad3d30d12ef9732e28208ea41d295219744624e6009b1e82d4775366b30
Status: Downloaded newer image for gcr.io/hedera-registry/yahcli:0.68
Log level is WARN
Targeting integration, paying with 0.0.54
2025-11-03 17:50:21.449 <hc> INFO   45   MapPropertySource - Initializing a MapPropertySource from {default.payer.pemKeyResource=, fees.fixedOffer=100000000, fees.useFixedOffer=true, nodes=34.74.191.8:0.0.3#0,35.245.150.69:0.0.4#1,34.70.193.123:0.0.5#2,34.94.114.236:0.0.6#3, default.payer.pemKeyLoc=./integration/keys/account54.pem, default.node=0, default.payer=0.0.54}
2025-11-03 17:50:22.059 <hc> INFO   75   ConfigProviderBase - Properties file data/config/genesis.properties does not exist and won't be used as configuration source
2025-11-03 17:50:22.060 <hc> INFO   75   ConfigProviderBase - Properties file data/config/application.properties does not exist and won't be used as configuration source
2025-11-03 17:50:22.473 <hc> INFO   976  HapiSpec - 'UploadSystemFile-150' -  test suite started !
2025-11-03 17:50:22.480 <hc> INFO   1015 HapiSpec - 'UploadSystemFile-150' finished initial execution of CustomSpecAssert
.i. Beginning upload for 0.0.150 (36119 appends required)
.i. Submitting initial update for file 0.0.150,
2025-11-03 17:50:22.659 <hc> ERROR  50   CustomSpecAssert - Operation 'HapiFileUpdate{sigs=1, payer=DEFAULT_PAYER, fileName=0.0.150}' :: HapiClients has no matching stub!
2025-11-03 17:50:22.661 <hc> WARN   221  HapiSpecOperation - 'UploadSystemFile-150' - CustomSpecAssert failed - java.lang.NullPointerException: HapiClients has no matching stub!!
java.lang.IllegalStateException: java.lang.NullPointerException: HapiClients has no matching stub!
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.handleExec(CustomSpecAssert.java:51)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.executeHederaOps(CustomSpecAssert.java:31)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor(CustomSpecAssert.java:25)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor(CustomSpecAssert.java:56)
	at com.hedera.services.bdd.spec.utilops.UtilVerbs.lambda$updateSpecialFile$60(UtilVerbs.java:1798)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.submitOp(CustomSpecAssert.java:72)
	at com.hedera.services.bdd.spec.HapiSpecOperation.execFor(HapiSpecOperation.java:207)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.handleExec(CustomSpecAssert.java:48)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.executeHederaOps(CustomSpecAssert.java:31)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor(CustomSpecAssert.java:25)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor(CustomSpecAssert.java:56)
	at com.hedera.services.bdd.spec.utilops.SourcedOp.submitOp(SourcedOp.java:19)
	at com.hedera.services.bdd.spec.HapiSpecOperation.execFor(HapiSpecOperation.java:207)
	at com.hedera.services.bdd.spec.HapiSpec.exec(HapiSpec.java:1006)
	at com.hedera.services.bdd.spec.HapiSpec.run(HapiSpec.java:803)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at com.hedera.services.bdd.suites.HapiSuite.runSequentialSpecs(HapiSuite.java:275)
	at com.hedera.services.bdd.suites.HapiSuite.runSuite(HapiSuite.java:233)
	at com.hedera.services.bdd.suites.HapiSuite.runSuiteSync(HapiSuite.java:205)
	at com.hedera.services.yahcli.commands.files.SysFileUploadCommand.call(SysFileUploadCommand.java:106)
	at com.hedera.services.yahcli.commands.files.SysFileUploadCommand.call(SysFileUploadCommand.java:14)
	at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
	at picocli.CommandLine.access$1500(CommandLine.java:148)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
	at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
	at picocli.CommandLine.execute(CommandLine.java:2174)
	at com.hedera.services.yahcli.Yahcli.main(Yahcli.java:118)
Caused by: java.lang.NullPointerException: HapiClients has no matching stub!
	at java.base/java.util.Objects.requireNonNull(Objects.java:259)
	at com.hedera.services.bdd.spec.infrastructure.HapiClients.nextStubsFromPool(HapiClients.java:390)
	at com.hedera.services.bdd.spec.infrastructure.HapiClients.getFileSvcStub(HapiClients.java:212)
	at com.hedera.services.bdd.junit.hedera.utils.GrpcUtils.submit(GrpcUtils.java:133)
	at com.hedera.services.bdd.junit.hedera.AbstractGrpcNetwork.submit(AbstractGrpcNetwork.java:70)
	at com.hedera.services.bdd.spec.transactions.HapiTxnOp.submitOp(HapiTxnOp.java:229)
	at com.hedera.services.bdd.spec.HapiSpecOperation.execFor(HapiSpecOperation.java:207)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.handleExec(CustomSpecAssert.java:48)
	... 29 more
2025-11-03 17:50:22.667 <hc> ERROR  50   CustomSpecAssert - Operation 'CustomSpecAssert' :: java.lang.NullPointerException: HapiClients has no matching stub!
2025-11-03 17:50:22.667 <hc> WARN   221  HapiSpecOperation - 'UploadSystemFile-150' - SourcedOp failed - java.lang.IllegalStateException: java.lang.NullPointerException: HapiClients has no matching stub!!
java.lang.IllegalStateException: java.lang.IllegalStateException: java.lang.NullPointerException: HapiClients has no matching stub!
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.handleExec(CustomSpecAssert.java:51)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.executeHederaOps(CustomSpecAssert.java:31)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor(CustomSpecAssert.java:25)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor(CustomSpecAssert.java:56)
	at com.hedera.services.bdd.spec.utilops.SourcedOp.submitOp(SourcedOp.java:19)
	at com.hedera.services.bdd.spec.HapiSpecOperation.execFor(HapiSpecOperation.java:207)
	at com.hedera.services.bdd.spec.HapiSpec.exec(HapiSpec.java:1006)
	at com.hedera.services.bdd.spec.HapiSpec.run(HapiSpec.java:803)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at com.hedera.services.bdd.suites.HapiSuite.runSequentialSpecs(HapiSuite.java:275)
	at com.hedera.services.bdd.suites.HapiSuite.runSuite(HapiSuite.java:233)
	at com.hedera.services.bdd.suites.HapiSuite.runSuiteSync(HapiSuite.java:205)
	at com.hedera.services.yahcli.commands.files.SysFileUploadCommand.call(SysFileUploadCommand.java:106)
	at com.hedera.services.yahcli.commands.files.SysFileUploadCommand.call(SysFileUploadCommand.java:14)
	at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
	at picocli.CommandLine.access$1500(CommandLine.java:148)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
	at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
	at picocli.CommandLine.execute(CommandLine.java:2174)
	at com.hedera.services.yahcli.Yahcli.main(Yahcli.java:118)
Caused by: java.lang.IllegalStateException: java.lang.NullPointerException: HapiClients has no matching stub!
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.handleExec(CustomSpecAssert.java:51)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.executeHederaOps(CustomSpecAssert.java:31)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor(CustomSpecAssert.java:25)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor(CustomSpecAssert.java:56)
	at com.hedera.services.bdd.spec.utilops.UtilVerbs.lambda$updateSpecialFile$60(UtilVerbs.java:1798)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.submitOp(CustomSpecAssert.java:72)
	at com.hedera.services.bdd.spec.HapiSpecOperation.execFor(HapiSpecOperation.java:207)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.handleExec(CustomSpecAssert.java:48)
	... 22 more
Caused by: java.lang.NullPointerException: HapiClients has no matching stub!
	at java.base/java.util.Objects.requireNonNull(Objects.java:259)
	at com.hedera.services.bdd.spec.infrastructure.HapiClients.nextStubsFromPool(HapiClients.java:390)
	at com.hedera.services.bdd.spec.infrastructure.HapiClients.getFileSvcStub(HapiClients.java:212)
	at com.hedera.services.bdd.junit.hedera.utils.GrpcUtils.submit(GrpcUtils.java:133)
	at com.hedera.services.bdd.junit.hedera.AbstractGrpcNetwork.submit(AbstractGrpcNetwork.java:70)
	at com.hedera.services.bdd.spec.transactions.HapiTxnOp.submitOp(HapiTxnOp.java:229)
	at com.hedera.services.bdd.spec.HapiSpecOperation.execFor(HapiSpecOperation.java:207)
	at com.hedera.services.bdd.spec.utilops.CustomSpecAssert.handleExec(CustomSpecAssert.java:48)
	... 29 more
2025-11-03 17:50:22.982 <hc> INFO   1064 HapiSpec - 'UploadSystemFile-150' - final status: FAILED!
.!. FAILED Uploading requested system files

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions