1 - SOLO-4001

MissingArgumentError — Validation

MissingArgumentError

CodeSOLO-4001
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when code reaches a point that requires a value but the value is absent or empty; the error message describes the argument that was expected. In most cases this is a required CLI flag or configuration value that the command was invoked without (for example a deployment selection left empty). It is also used as an internal guard when a method is called without a mandatory argument, in which case it points to a defect in the calling code rather than to user input.

Troubleshooting Steps

  1. Provide the missing argument. Run solo –help for usage information

2 - SOLO-4002

IllegalArgumentError — Validation

IllegalArgumentError

CodeSOLO-4002
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when an argument value is not legal for the operation; the message states the reason, and the offending value is attached. solo validates argument values before using them, so this means a provided value was out of range, malformed, or otherwise unacceptable.

Troubleshooting Steps

  1. An argument has an valid value or format.
  2. Verify the argument value before retrying

3 - SOLO-4003

InvalidOutputFormatError — Validation

InvalidOutputFormatError

CodeSOLO-4003
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when an output format is not one of the allowed values; the message names the offending value and the allowed set (json, yaml, wide). solo formats command output according to this flag, so this means an unsupported value was supplied.

Troubleshooting Steps

  1. Valid output formats are: json, yaml, wide

4 - SOLO-4004

ConsensusNodeCountRequiredError — Validation

ConsensusNodeCountRequiredError

CodeSOLO-4004
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the consensus node count flag is required but missing; the message names the flag and the phase in which it is needed. solo needs to know how many consensus nodes to act on, so this means the flag must be supplied at that phase.

Troubleshooting Steps

  1. Specify the number of consensus nodes using the – flag, e.g. – 3

5 - SOLO-4005

InvalidPortNumberError — Validation

InvalidPortNumberError

CodeSOLO-4005
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown while validating a port value supplied through a CLI flag or configuration field, when the value does not denote a usable TCP/UDP port: it is not an integer, or it falls outside the valid range of 1–65535. The error message echoes the offending value. This is raised before solo tries to bind, forward, or configure the port, so it reflects bad input (a typo, a non-numeric string, or 0/a negative/too-large number) rather than a port that is already in use.

Troubleshooting Steps

  1. Port numbers must be integers between 1 and 65535

6 - SOLO-4006

LocalBuildPathNotFoundSoloError — Validation

LocalBuildPathNotFoundSoloError

CodeSOLO-4006
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a local build path does not exist; the message names it. solo reads platform artifacts from this path, so this means it is missing or the path is wrong.

Troubleshooting Steps

  1. Verify the path exists: ls -la
  2. Set the correct path: solo consensus node setup –local-build-path
  3. Build the platform locally and point to the data/ directory output

7 - SOLO-4007

LocalBuildMissingSubdirectoriesSoloError — Validation

LocalBuildMissingSubdirectoriesSoloError

CodeSOLO-4007
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a local build path is missing the required apps and lib subdirectories; the message names the path. solo expects a local platform build to contain both, so this means the path does not point at a complete build.

Troubleshooting Steps

  1. Verify the directory structure: ls -la
  2. Ensure the path points to the data/ directory of the Hedera platform build
  3. Expected layout: /apps/.jar and /lib/.jar (set via –local-build-path)

8 - SOLO-4008

LocalBuildNoJarFilesSoloError — Validation

LocalBuildNoJarFilesSoloError

CodeSOLO-4008
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when no jar files are found in a local build subdirectory; the message names the subdirectory. solo expects the build subdirectories to contain jars, so this means the build is incomplete or the path is wrong.

Troubleshooting Steps

  1. List files in the directory: ls -la
  2. Ensure a complete platform build was performed before using –local-build-path
  3. Expected: /apps/HederaNode.jar and /lib/*.jar

9 - SOLO-4009

NodeJarFilesNotInContainerSoloError — Validation

NodeJarFilesNotInContainerSoloError

CodeSOLO-4009
CategoryValidation
OwnershipSolo
RetryableNo

Description

Thrown when no JAR files are found in the expected directory inside a node container; the message names the node alias and the directory. The platform software should have been copied to the node before starting it, so their absence indicates an internal ordering or setup defect and is treated as an internal Solo error.

Troubleshooting Steps

  1. Run setup before starting: solo consensus node setup
  2. Verify the directory inside the pod: kubectl exec -n – ls
  3. Re-copy platform software: solo consensus node setup –local-build-path

10 - SOLO-4010

GrpcEndpointsRequiredSoloError — Validation

GrpcEndpointsRequiredSoloError

CodeSOLO-4010
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when --grpc-endpoints is required for the chosen endpoint type but was not provided; the message names the endpoint type. Certain endpoint types need explicit gRPC endpoints, so this means the flag must be supplied for that type.

Troubleshooting Steps

  1. Provide gRPC endpoints: solo consensus node add –grpc-endpoints ip:port,...
  2. Or switch endpoint type: solo consensus node add –endpoint-type FQDN
  3. Review flag usage: solo consensus node add –help

11 - SOLO-4011

OutputDirectoryNotSpecifiedSoloError — Validation

OutputDirectoryNotSpecifiedSoloError

CodeSOLO-4011
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when an output directory is required but --output-dir was not set. solo exports context data to this directory, so this means the flag must be provided.

Troubleshooting Steps

  1. Provide the output directory: solo node –output-dir
  2. Run with –help to see required flags: solo node –help

12 - SOLO-4012

InputDirectoryNotSpecifiedSoloError — Validation

InputDirectoryNotSpecifiedSoloError

CodeSOLO-4012
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when an input directory is required but --input-dir was not set. solo reads context data from this directory, so this means the flag must be provided.

Troubleshooting Steps

  1. Provide the input directory: solo node –input-dir
  2. Run with –help to see required flags: solo node –help

13 - SOLO-4013

WrapsKeyPathNotFoundSoloError — Validation

WrapsKeyPathNotFoundSoloError

CodeSOLO-4013
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the WRAPs key path does not exist; the message names the path. solo reads the WRAPs key from this path, so this means it is missing or the path is wrong.

Troubleshooting Steps

  1. Verify the path: ls -la
  2. Set the correct path: solo consensus node add –wraps-key-path
  3. Or omit the flag to download WRAPs keys automatically

14 - SOLO-4014

ConfigFileNotFoundSoloError — Validation

ConfigFileNotFoundSoloError

CodeSOLO-4014
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a configuration file referenced by a flag does not exist; the message names the flag and the absolute and relative paths tried. solo reads the file from the provided path, so this means it is missing or the path is wrong — for example a typo or a relative path resolved from an unexpected directory.

Troubleshooting Steps

  1. Verify the file exists: ls -la
  2. Set the correct file path for the – flag
  3. Run with –help for configuration file flags: solo consensus node setup –help

15 - SOLO-4015

NodeVersionMismatchSoloError — Validation

NodeVersionMismatchSoloError

CodeSOLO-4015
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the consensus node version saved in the remote config differs from the requested version; the message names both. solo guards against mixing versions, so this means the requested version does not match what the deployment recorded — align the versions.

Troubleshooting Steps

  1. Check the saved version: solo deployment config info –deployment
  2. Use the same version: solo consensus node setup –release-tag
  3. Or upgrade the network first: solo consensus network upgrade –upgrade-version

16 - SOLO-4016

UpgradeVersionNotFoundSoloError — Validation

UpgradeVersionNotFoundSoloError

CodeSOLO-4016
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a requested upgrade version does not exist; the message names the version. solo looks up upgrade versions before using them, so this means the version is not available — for example a wrong or not-yet-published version.

Troubleshooting Steps

  1. Check valid release versions: https://github.com/hashgraph/hedera-services/releases
  2. Use a published release tag: solo consensus network upgrade –upgrade-version v0.x.y

17 - SOLO-4017

PvcFlagNotEnabledSoloError — Validation

PvcFlagNotEnabledSoloError

CodeSOLO-4017
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when an operation needs PVCs but the PVCs flag is not enabled. Adding a node requires persistent storage, so this means PVCs must be enabled first.

Troubleshooting Steps

  1. Redeploy with PVCs enabled: solo consensus network deploy –pvcs true
  2. Check the current deployment configuration: solo deployment config info –deployment
  3. PVCs are required for node add operations to persist state across pod restarts

18 - SOLO-4018

NonInteractivePromptSoloError — Validation

NonInteractivePromptSoloError

CodeSOLO-4018
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when solo would need to prompt for input but is running non-interactively. A required value was not supplied and solo cannot ask for it (for example in CI or with prompts disabled), so provide the missing value explicitly (such as via the deployment flag).

Troubleshooting Steps

  1. Provide required flags explicitly instead of relying on interactive prompts
  2. Use to specify the deployment name
  3. Run with –help to see all available flags: solo consensus node –help

19 - SOLO-4019

RealmShardVersionConstraintSoloError — Validation

RealmShardVersionConstraintSoloError

CodeSOLO-4019
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when non-zero realm or shard values are used with a network node version that does not support them; the message names the minimum version. Older platform versions require realm and shard to be 0, so this means the values are incompatible with the selected version.

Troubleshooting Steps

  1. Use realm=0 and shard=0: solo consensus network deploy –realm 0 –shard 0
  2. Or upgrade to network node >= : solo consensus network upgrade –upgrade-version

20 - SOLO-4020

WrapsVersionConstraintSoloError — Validation

WrapsVersionConstraintSoloError

CodeSOLO-4020
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when --wraps is used with a consensus node version below the minimum required; the message names the minimum version. WRAPs support requires a sufficiently new node version, so this means the selected version is too old.

Troubleshooting Steps

  1. Upgrade consensus node first: solo consensus network upgrade –upgrade-version
  2. Or disable WRAPs: solo consensus network deploy –wraps false

21 - SOLO-4021

StateFilePathNotFoundSoloError — Validation

StateFilePathNotFoundSoloError

CodeSOLO-4021
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the provided state file path does not exist; the message names the path (or notes it was not specified). solo needs a valid path to the state file, so this means the path is missing or wrong.

Troubleshooting Steps

  1. Verify the path exists: ls -la <path ?? ‘'>
  2. Download a valid state file first: solo consensus state download
  3. Then provide either the downloaded .zip file or the download parent directory using –state-file
  4. When a directory is provided, Solo looks for state files under: /states//

22 - SOLO-4022

StateFileNotFoundSoloError — Validation

StateFileNotFoundSoloError

CodeSOLO-4022
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a state file does not exist or is not a regular file; the message names the path. solo reads saved state from this file, so this means it is missing or the path points at something that is not a file.

Troubleshooting Steps

  1. Verify the file exists and is a regular file: ls -la
  2. Make sure the path points to a .zip file, not a directory or missing symlink target.
  3. Download a valid state file first: solo consensus state download
  4. When using a directory, pass the parent directory; Solo looks under /states//.

23 - SOLO-4023

InvalidStateFileFormatSoloError — Validation

InvalidStateFileFormatSoloError

CodeSOLO-4023
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a state file is not a .zip; the message names the path. solo expects saved state as a zip archive, so this means a non-zip file was supplied.

Troubleshooting Steps

  1. Use a state file ending in .zip with –state-file <stateFile.zip>
  2. Download a valid state file first: solo consensus state download
  3. If passing a directory instead, Solo will select node-specific state files from /states//.

24 - SOLO-4024

InvalidStateZipFileNameSoloError — Validation

InvalidStateZipFileNameSoloError

CodeSOLO-4024
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a state zip file name is invalid; the message names it. solo expects state zip files to follow a specific naming convention, so this means the name does not match it.

Troubleshooting Steps

  1. Download a valid state file first: solo consensus state download
  2. Or rename the state zip file to use only letters, numbers, dots, underscores, and hyphens.
  3. The file name must not start with a hyphen and must not contain slashes, spaces, shell syntax, or path traversal.
  4. Example valid name: node1-state.zip

25 - SOLO-4025

ExplorerInvalidComponentIdSoloError — Validation

ExplorerInvalidComponentIdSoloError

CodeSOLO-4025
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when an explorer component id is not valid; the message includes the value and its runtime type. solo expects component ids in a specific form, so this means the supplied id is malformed or of the wrong type.

Troubleshooting Steps

  1. Inspect remote config state for corruption: kubectl get configmap solo-remote-config -n -o yaml
  2. Check solo logs for config loading errors: tail -n 100 ~/.solo/logs/solo.log
  3. If the issue persists, this may be an internal bug — report it with your solo log

26 - SOLO-4026

RelayInvalidComponentIdSoloError — Validation

RelayInvalidComponentIdSoloError

CodeSOLO-4026
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a relay component id is not valid; the message includes the value and its runtime type. solo expects component ids in a specific form, so this means the supplied id is malformed or of the wrong type.

Troubleshooting Steps

  1. Inspect remote config state for corruption: kubectl get configmap solo-remote-config -n -o yaml
  2. Check solo logs for config loading errors: tail -n 100 ~/.solo/logs/solo.log
  3. If the issue persists, this may be an internal bug — report it with your solo log

27 - SOLO-4027

OneShotCachedDeploymentNotFoundSoloError — Validation

OneShotCachedDeploymentNotFoundSoloError

CodeSOLO-4027
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a cached one-shot deployment cannot be found; the message carries a hint about what was expected. One-shot mode reuses a cached deployment, so this means none matched — for example it was never created or has been cleared.

Troubleshooting Steps

  1. List available deployments: solo deployment config list
  2. Specify the deployment explicitly with –deployment)

28 - SOLO-4028

MirrorNodeInvalidComponentIdSoloError — Validation

MirrorNodeInvalidComponentIdSoloError

CodeSOLO-4028
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a mirror node component id is not valid; the message includes the value and its runtime type. solo expects component ids in a specific form, so this means the supplied id is malformed or of the wrong type.

Troubleshooting Steps

  1. Inspect remote config state for corruption: kubectl get configmap solo-remote-config -n -o yaml
  2. Check solo logs for config loading errors: tail -n 100 ~/.solo/logs/solo.log
  3. If the issue persists, this may be an internal bug — report it with your solo log

29 - SOLO-4029

BlockNodeLocalImageNotFoundSoloError — Validation

BlockNodeLocalImageNotFoundSoloError

CodeSOLO-4029
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a local block node image with the given tag does not exist; the message names the tag. solo expects the referenced local image to be present (for example built or loaded into the cluster), so this means it is missing — build or load the image, or correct the tag.

Troubleshooting Steps

  1. Verify the image exists locally: docker images | grep
  2. Pull the image if missing: docker pull /block-node:
  3. Ensure the tag is a valid semantic version

30 - SOLO-4030

BlockNodeInvalidComponentIdSoloError — Validation

BlockNodeInvalidComponentIdSoloError

CodeSOLO-4030
CategoryValidation
OwnershipSolo
RetryableNo

Description

Thrown when a block node component id is not the expected type or format; the message includes the value and its runtime type. solo expects component ids in a specific form, so an invalid value passed internally points to a defect in the calling code and is treated as an internal Solo error.

Troubleshooting Steps

  1. Inspect remote config for corruption: kubectl get configmap solo-remote-config -n -o yaml
  2. Check solo logs for config loading errors: tail -n 100 ~/.solo/logs/solo.log
  3. If the issue persists, this may be an internal bug — report it with your solo log

31 - SOLO-4031

BlockNodePlatformVersionTooLowSoloError — Validation

BlockNodePlatformVersionTooLowSoloError

CodeSOLO-4031
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the current consensus node version is below the minimum required to deploy a block node; the message names the current and minimum versions. Block node deployment requires a sufficiently new platform, so this means the deployed version is too old — upgrade the consensus node version first.

Troubleshooting Steps

  1. Upgrade your consensus node to at least version before deploying block nodes
  2. Check the current consensus node version: solo deployment config info
  3. Check solo logs: tail -n 100 ~/.solo/logs/solo.log

32 - SOLO-4032

BlockNodeLivenessPortVersionIncompatibleSoloError — Validation

BlockNodeLivenessPortVersionIncompatibleSoloError

CodeSOLO-4032
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the consensus platform version is too low for the requested block node version liveness-check port; the message names the platform version, the minimum required, and the block node version. A newer block node changed its liveness port, so this means the deployed platform predates that change — use a compatible platform and block-node version combination.

Troubleshooting Steps

  1. Upgrade your consensus node to at least version
  2. Or use a block node chart version below

33 - SOLO-4033

InvalidHbarAmountSoloError — Validation

InvalidHbarAmountSoloError

CodeSOLO-4033
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when an HBAR amount is invalid; the message includes the offending value. solo parses HBAR amounts from flags and config, so this means the value is not a valid amount — for example non-numeric, or negative where it is not allowed.

Troubleshooting Steps

  1. Provide a valid positive numeric HBAR amount (e.g., 100 or 0.5)
  2. Run solo ledger account create –help for usage information

34 - SOLO-4034

InvalidFileIdFormatSoloError — Validation

InvalidFileIdFormatSoloError

CodeSOLO-4034
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a file ID is not in the expected 0.0.<number> format; the message includes the offending value and an example. solo parses Hedera file IDs from input, so this means the value is malformed.

Troubleshooting Steps

  1. Provide a file ID in the format 0.0. (e.g., 0.0.150)
  2. Run solo ledger file –help for usage information

35 - SOLO-4035

InvalidEndpointFormatSoloError — Validation

InvalidEndpointFormatSoloError

CodeSOLO-4035
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when an endpoint is not in the expected url:port format; the message includes the offending value. solo parses endpoints from flags and config, so this means the value is malformed — provide it as url:port.

Troubleshooting Steps

  1. Provide the endpoint in url:port format (e.g., 127.0.0.1:50211)
  2. Run solo –help for usage information

36 - SOLO-4036

InvalidCommaSeparatedStringSoloError — Validation

InvalidCommaSeparatedStringSoloError

CodeSOLO-4036
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when an input is not a valid comma-separated string; the message includes the offending value. solo parses comma-separated lists from flags and config, so this means the value could not be parsed as such — for example stray separators or empty entries.

Troubleshooting Steps

  1. Provide a comma-separated list of values (e.g., node1,node2,node3)
  2. Do not include spaces around commas unless they are part of the values

37 - SOLO-4037

InvalidConfigNumberValueSoloError — Validation

InvalidConfigNumberValueSoloError

CodeSOLO-4037
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a numeric configuration value cannot be parsed; the message names the value and wraps the underlying failure in cause. solo expects a number here, so this means the provided value is not numeric or is not in the accepted form.

Troubleshooting Steps

  1. Provide a valid integer or decimal number for this configuration option
  2. Run solo –help for usage information

38 - SOLO-4038

InvalidStorageTypeSoloError — Validation

InvalidStorageTypeSoloError

CodeSOLO-4038
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a storage type value is invalid; the message includes the offending value. solo accepts a fixed set of storage types, so this means the supplied value is not one of them.

Troubleshooting Steps

  1. Provide a valid storage type value
  2. Run solo –help for usage information and supported storage types

39 - SOLO-4039

UnsupportedFlagFieldTypeSoloError — Validation

UnsupportedFlagFieldTypeSoloError

CodeSOLO-4039
CategoryValidation
OwnershipSolo
RetryableNo

Description

Thrown when a flag is declared with a field type solo does not support; the message names the flag and the field type. solo maps flag field types to handling logic, so an unsupported type indicates an internal flag-definition defect and is treated as an internal Solo error.

Troubleshooting Steps

  1. This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues

40 - SOLO-4040

VersionDowngradeBlockedSoloError — Validation

VersionDowngradeBlockedSoloError

CodeSOLO-4040
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when an upgrade target version is older than the currently deployed version; the message names the component, the target and current versions, and the flag to use. solo blocks downgrades to prevent accidental rollbacks, so this means the requested version is too old — choose a version equal to or newer than the deployed one.

Troubleshooting Steps

  1. Specify a version equal to or newer than the currently deployed version () using
  2. Downgrades are not supported — check the available releases before upgrading

41 - SOLO-4041

AdminKeysCountMismatchSoloError — Validation

AdminKeysCountMismatchSoloError

CodeSOLO-4041
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the number of admin public keys provided does not match the number of consensus nodes; the message reports both counts. solo expects one DER-encoded ED25519 public key per node, so this means the supplied comma-separated list is the wrong length — provide exactly one key per node.

Troubleshooting Steps

  1. Provide exactly comma-separated DER encoded ED25519 public keys, one for each consensus node
  2. Run solo consensus network deploy –help for usage information

42 - SOLO-4042

ComponentAlreadyExistsSoloError — Validation

ComponentAlreadyExistsSoloError

CodeSOLO-4042
CategoryValidation
OwnershipSolo
RetryableNo

Description

Thrown when a component being added already exists in the remote configuration; the message names the component id. solo expects to add each component once, so a duplicate id at this point indicates an internal bookkeeping defect and is treated as an internal Solo error.

Troubleshooting Steps

  1. This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues

43 - SOLO-4043

ComponentIdRequiredSoloError — Validation

ComponentIdRequiredSoloError

CodeSOLO-4043
CategoryValidation
OwnershipSolo
RetryableNo

Description

Thrown when a component id is required but was not provided; the message echoes the value. solo needs an id to locate or record a component, so a missing value passed internally points to a defect in the calling code and is treated as an internal Solo error.

Troubleshooting Steps

  1. This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues

44 - SOLO-4044

ComponentNotFoundSoloError — Validation

ComponentNotFoundSoloError

CodeSOLO-4044
CategoryValidation
OwnershipSolo
RetryableNo

Description

Thrown when a component cannot be found during an operation; the message names the component id, its type, and the operation attempted. solo expected the component to be present at this point, so its absence indicates an internal inconsistency and is treated as an internal Solo error.

Troubleshooting Steps

  1. This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues

45 - SOLO-4045

ComponentNotInRemoteConfigSoloError — Validation

ComponentNotInRemoteConfigSoloError

CodeSOLO-4045
CategoryValidation
OwnershipSolo
RetryableNo

Description

Thrown when a component of a given type and id is not present in the remote configuration; the message names both. solo expected the component to be recorded, so its absence here indicates an internal inconsistency and is treated as an internal Solo error.

Troubleshooting Steps

  1. This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues

46 - SOLO-4046

UnknownComponentTypeSoloError — Validation

UnknownComponentTypeSoloError

CodeSOLO-4046
CategoryValidation
OwnershipSolo
RetryableNo

Description

Thrown when solo encounters a component type it does not recognize; the message names the type and, when present, the component id. solo dispatches on known component types, so an unknown value indicates an internal inconsistency and is treated as an internal Solo error.

Troubleshooting Steps

  1. This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues

47 - SOLO-4047

ConfigFileInvalidSoloError — Validation

ConfigFileInvalidSoloError

CodeSOLO-4047
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a configuration file is empty or contains invalid content. solo reads this file to drive a command, so this means it had no usable content — for example an empty file or content that does not match the expected format.

Troubleshooting Steps

  1. Verify the configuration file is a valid YAML or JSON document
  2. Check that the file is not empty and contains the expected fields
  3. Run solo config ops backup to export a valid configuration for reference

48 - SOLO-4048

MultipleClustersFoundSoloError — Validation

MultipleClustersFoundSoloError

CodeSOLO-4048
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when several clusters are available but none was selected; the message lists them. solo cannot guess which cluster to use, so it asks you to disambiguate with --cluster-ref.

Troubleshooting Steps

  1. Specify the cluster reference using the –cluster-ref flag
  2. List available cluster references: solo cluster-ref config list

49 - SOLO-4049

CacheNotMaterializedSoloError — Validation

CacheNotMaterializedSoloError

CodeSOLO-4049
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the cache is used before it has been materialized. solo requires the cache to be populated before it can be read, so this means a read happened too early in the workflow — materialize the cache first.

Troubleshooting Steps

  1. Check solo logs: tail -n 100 ~/.solo/logs/solo.log
  2. Run the cache pull step before using cached images: solo cache image –help

50 - SOLO-4050

CacheImageTemplateUnknownSoloError — Validation

CacheImageTemplateUnknownSoloError

CodeSOLO-4050
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a cache image template key is not recognized; the message names the key. solo resolves image versions against a known set of template keys, so this means the supplied key is not one of them — for example a typo or an unsupported template.

Troubleshooting Steps

  1. Verify the cache image template key is correct in your configuration
  2. Declare the template in the templates section before using it in version fields

51 - SOLO-4051

InvalidKindNodeImageSoloError — Validation

InvalidKindNodeImageSoloError

CodeSOLO-4051
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a Kind node image reference is invalid; the message includes the offending value. solo uses this image to create the Kind cluster nodes, so this means the reference is malformed — provide a valid image reference.

Troubleshooting Steps

  1. Provide a valid Kind node image reference (e.g., kindest/node:v1.27.0)
  2. Check the Kind documentation for supported image formats

52 - SOLO-4052

PathTraversalDetectedSoloError — Validation

PathTraversalDetectedSoloError

CodeSOLO-4052
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a resolved path falls outside the allowed base directory; the message names the resolved path and the base. solo blocks path traversal for safety, so this means the supplied path escaped the permitted directory — for example .. segments or an absolute path outside the base.

Troubleshooting Steps

  1. Provide a path that is within the allowed base directory
  2. Avoid using “..” path components that escape the base directory

53 - SOLO-4053

NodeAliasesMustBeArraySoloError — Validation

NodeAliasesMustBeArraySoloError

CodeSOLO-4053
CategoryValidation
OwnershipSolo
RetryableNo

Description

Thrown when a node-aliases value is not an array of strings where one was required. solo expects this value to already be normalized to an array internally, so a non-array here points to a defect in the calling code and is treated as an internal Solo error.

Troubleshooting Steps

  1. This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues

54 - SOLO-4054

UnknownNodeAliasSoloError — Validation

UnknownNodeAliasSoloError

CodeSOLO-4054
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when solo cannot resolve a node ID from a node alias; the message names the alias. solo maps aliases to node IDs, so this means the alias is not recognized — for example a typo or an alias not present in the deployment.

Troubleshooting Steps

  1. Verify the node alias ‘’ is registered in the current deployment
  2. Check registered nodes: solo deployment config info

55 - SOLO-4055

NodeAliasInferenceFailedSoloError — Validation

NodeAliasInferenceFailedSoloError

CodeSOLO-4055
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when solo cannot infer a node alias from address data; the message includes the offending data. solo derives aliases from address-book data, so this means the data did not yield a usable alias — for example a malformed or unexpected entry.

Troubleshooting Steps

  1. Verify the address data format is correct
  2. Ensure the address book contains valid node alias information

56 - SOLO-4056

NodeAliasParseFailedSoloError — Validation

NodeAliasParseFailedSoloError

CodeSOLO-4056
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when solo cannot parse a node alias from input; the message includes the offending value. solo parses node aliases from flags and config, so this means the value could not be parsed as an alias.

Troubleshooting Steps

  1. Verify the node alias format (expected: node where N is a positive integer)
  2. Check deployment configuration for valid node aliases: solo deployment config info

57 - SOLO-4057

DomainNameParseFailedSoloError — Validation

DomainNameParseFailedSoloError

CodeSOLO-4057
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when solo cannot parse a domain name from the provided data; the message includes the offending input. solo parses domain names from configuration and flags, so this means the value is not a parseable domain — for example a malformed or empty value.

Troubleshooting Steps

  1. Verify the domain name format is correct
  2. Check the address book configuration for valid domain names

58 - SOLO-4058

UnknownTemplateDependencySoloError — Validation

UnknownTemplateDependencySoloError

CodeSOLO-4058
CategoryValidation
OwnershipSolo
RetryableNo

Description

Thrown when a template references a dependency solo does not know; the message names the dependency. Templates may only reference declared dependencies, so an unknown one indicates an internal template defect and is treated as an internal Solo error.

Troubleshooting Steps

  1. This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues

59 - SOLO-4059

NoConsensusNodesFoundSoloError — Validation

NoConsensusNodesFoundSoloError

CodeSOLO-4059
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when no consensus nodes are found to operate on. solo derives the node set from the deployment and --node-aliases, so this means neither yielded any nodes — check your deployment or the --node-aliases input.

Troubleshooting Steps

  1. Verify the deployment has consensus nodes configured: solo deployment config info
  2. Deploy consensus nodes: solo consensus node setup
  3. Use –node-aliases to specify target nodes explicitly

60 - SOLO-4060

ServiceTypeMismatchSoloError — Validation

ServiceTypeMismatchSoloError

CodeSOLO-4060
CategoryValidation
OwnershipInfrastructure
RetryableNo

Description

Thrown when a Kubernetes service is not the expected network-node service; the message names the service. solo expects a service of a specific kind when resolving node endpoints, so this means the service exists but is of the wrong type — indicating an unexpected cluster state.

Troubleshooting Steps

  1. Check solo logs: tail -n 100 ~/.solo/logs/solo.log
  2. Inspect Kubernetes services: kubectl get svc -n
  3. Verify the network is deployed correctly: solo consensus network deploy

61 - SOLO-4061

BackupConfigNotFoundSoloError — Validation

BackupConfigNotFoundSoloError

CodeSOLO-4061
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the backup configuration file does not exist; the message names the path. solo reads this file to run a backup or restore, so this means it is missing or the path is wrong — for example a typo or a file that was moved.

Troubleshooting Steps

  1. Verify the configuration file exists at:
  2. Export a new backup to generate a configuration file: solo config ops backup

62 - SOLO-4062

BackupConfigInvalidSoloError — Validation

BackupConfigInvalidSoloError

CodeSOLO-4062
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the backup configuration file is empty or invalid. solo reads this file to drive a backup or restore, so this means it contained no usable configuration — for example an empty file or content that does not match the expected format.

Troubleshooting Steps

  1. Verify the configuration file is a valid YAML or JSON document and is not empty
  2. Export a new backup to generate a valid configuration file: solo config ops backup

63 - SOLO-4063

BackupConfigReadFailedSoloError — Validation

BackupConfigReadFailedSoloError

CodeSOLO-4063
CategoryValidation
OwnershipInfrastructure
RetryableNo

Description

Thrown when solo cannot read the backup configuration file; the message names the path and wraps the underlying failure in cause. solo reads this file during restore, so this means it could not be read — for example missing permissions or an I/O error.

Troubleshooting Steps

  1. Verify the file exists and is readable:
  2. Check file permissions
  3. Export a new backup to regenerate the configuration file: solo config ops backup

64 - SOLO-4064

BackupConfigMapKeyMissingSoloError — Validation

BackupConfigMapKeyMissingSoloError

CodeSOLO-4064
CategoryValidation
OwnershipInfrastructure
RetryableNo

Description

Thrown when the backup ConfigMap does not contain a required key; the message names the missing key. solo reads specific keys from the backup ConfigMap during restore, so this means the ConfigMap exists but is missing data it needs — indicating an incomplete or unexpected backup source.

Troubleshooting Steps

  1. Check solo logs: tail -n 100 ~/.solo/logs/solo.log
  2. Verify the Kubernetes ConfigMap contains the expected data
  3. Re-export the backup to regenerate the ConfigMap: solo config ops backup

65 - SOLO-4065

BackupConfigParseFailedSoloError — Validation

BackupConfigParseFailedSoloError

CodeSOLO-4065
CategoryValidation
OwnershipInfrastructure
RetryableNo

Description

Thrown when solo cannot parse the backup configuration; the underlying failure is wrapped in cause. solo parses the backup configuration to drive a restore, so this means the content could not be parsed — for example malformed YAML or an unexpected structure.

Troubleshooting Steps

  1. Verify the backup configuration file is valid YAML or JSON
  2. Check that the configuration was exported with a compatible Solo version
  3. Re-export the backup to regenerate the configuration: solo config ops backup –deployment

66 - SOLO-4066

BackupInputDirectoryNotFoundSoloError — Validation

BackupInputDirectoryNotFoundSoloError

CodeSOLO-4066
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the backup input directory does not exist; the message names it. solo reads backup data from this directory during restore, so this means it is missing or the path is wrong.

Troubleshooting Steps

  1. Verify the directory exists at:
  2. Use –input-dir to specify the correct path to the backup directory
  3. Run solo config ops restore-clusters –help for usage information

67 - SOLO-4067

BackupNoClusterDirectoriesSoloError — Validation

BackupNoClusterDirectoriesSoloError

CodeSOLO-4067
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the backup input directory contains no per-cluster directories; the message names the directory. A valid backup groups data under cluster directories, so this means none were found — the directory is not a valid backup or is empty.

Troubleshooting Steps

  1. Verify the input directory contains cluster subdirectories:
  2. Ensure you are pointing to the correct backup directory
  3. Re-export the backup: solo config ops backup

68 - SOLO-4068

BackupClusterValidationFailedSoloError — Validation

BackupClusterValidationFailedSoloError

CodeSOLO-4068
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when a backup input directory does not contain the expected solo-remote-config.yaml; the message names the path and the expected <input-dir>/<cluster-ref>/configmaps/solo-remote-config.yaml structure. solo validates the backup layout before restoring, so this means the directory is not a valid backup or the wrong path was given.

Troubleshooting Steps

  1. Verify the backup archive was exported with compatible Solo and cluster versions
  2. Check cluster references: solo cluster-ref config list
  3. Re-export the backup from the original cluster: solo config ops backup

69 - SOLO-4069

BackupNoClusterInfoSoloError — Validation

BackupNoClusterInfoSoloError

CodeSOLO-4069
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the backup configuration file contains no cluster information. solo reads cluster details from the backup config to restore, so this means that section is missing or empty — indicating an incomplete or invalid backup config.

Troubleshooting Steps

  1. Verify the backup configuration file contains cluster information
  2. Ensure the backup was exported with a compatible Solo version
  3. Re-export the backup: solo config ops backup

70 - SOLO-4070

BackupNoComponentsSoloError — Validation

BackupNoComponentsSoloError

CodeSOLO-4070
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the deployment state to restore contains no components. solo restores components recorded in the backup, so this means none were found to restore — for example an empty or incomplete backup.

Troubleshooting Steps

  1. Verify the backup archive contains component state information
  2. Ensure the backup was exported from a deployment with active components
  3. Re-export the backup: solo config ops backup

71 - SOLO-4071

BackupOptionsFileNotFoundSoloError — Validation

BackupOptionsFileNotFoundSoloError

CodeSOLO-4071
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the restore options file does not exist; the message names it. solo reads restore options from this file, so this means it is missing or the path is wrong.

Troubleshooting Steps

  1. Verify the options file exists at:
  2. Run solo config ops restore-network –help for usage information

72 - SOLO-4072

BackupZipFileRequiredSoloError — Validation

BackupZipFileRequiredSoloError

CodeSOLO-4072
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when --zip-password is used without --zip-file. A password applies to a specific zip archive, so this means the required --zip-file was not provided — supply it or omit the password.

Troubleshooting Steps

  1. Provide the –zip-file flag when using –zip-password
  2. Run solo config ops restore-clusters –help for usage information

73 - SOLO-4073

BackupInputPathNotFoundSoloError — Validation

BackupInputPathNotFoundSoloError

CodeSOLO-4073
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when the backup input path does not exist; the message names it. solo reads the backup from this path, so this means it is missing or the path is wrong.

Troubleshooting Steps

  1. Verify the input path exists:
  2. Use –input-dir or –zip-file to specify the correct backup path
  3. Run solo config ops restore-clusters –help for usage information

74 - SOLO-4074

BackupInputMustBeZipSoloError — Validation

BackupInputMustBeZipSoloError

CodeSOLO-4074
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when --zip-password is used but the input path is not a .zip file. A password only applies to a zip archive, so this means the supplied input is not a zip — provide a .zip file or omit the password.

Troubleshooting Steps

  1. Provide a .zip archive as the input path when using –zip-password
  2. Run solo config ops restore-clusters –help for usage information

75 - SOLO-4075

BackupNoLogFilesSoloError — Validation

BackupNoLogFilesSoloError

CodeSOLO-4075
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when no log files are found to restore for a context; the message names the context. solo restores log files captured in the backup, so this means none were present for that context.

Troubleshooting Steps

  1. Verify the backup archive contains log files for context ‘
  2. Check the backup directory structure for expected log files
  3. Re-export the backup to include log files: solo config ops backup

76 - SOLO-4076

FlagInputFailedSoloError — Validation

FlagInputFailedSoloError

CodeSOLO-4076
CategoryValidation
OwnershipUser
RetryableNo

Description

Thrown when input validation for a flag fails; the message names the flag and wraps the underlying failure in cause. solo validates and coerces flag inputs before using them, so this means the provided value did not pass validation — correct the flag value.

Troubleshooting Steps

  1. Verify the value provided for – is valid
  2. Run solo –help for usage information and accepted flag values