This is the multi-page printable view of this section. Click here to print.
Validation
- 1: SOLO-4001
- 2: SOLO-4002
- 3: SOLO-4003
- 4: SOLO-4004
- 5: SOLO-4005
- 6: SOLO-4006
- 7: SOLO-4007
- 8: SOLO-4008
- 9: SOLO-4009
- 10: SOLO-4010
- 11: SOLO-4011
- 12: SOLO-4012
- 13: SOLO-4013
- 14: SOLO-4014
- 15: SOLO-4015
- 16: SOLO-4016
- 17: SOLO-4017
- 18: SOLO-4018
- 19: SOLO-4019
- 20: SOLO-4020
- 21: SOLO-4021
- 22: SOLO-4022
- 23: SOLO-4023
- 24: SOLO-4024
- 25: SOLO-4025
- 26: SOLO-4026
- 27: SOLO-4027
- 28: SOLO-4028
- 29: SOLO-4029
- 30: SOLO-4030
- 31: SOLO-4031
- 32: SOLO-4032
- 33: SOLO-4033
- 34: SOLO-4034
- 35: SOLO-4035
- 36: SOLO-4036
- 37: SOLO-4037
- 38: SOLO-4038
- 39: SOLO-4039
- 40: SOLO-4040
- 41: SOLO-4041
- 42: SOLO-4042
- 43: SOLO-4043
- 44: SOLO-4044
- 45: SOLO-4045
- 46: SOLO-4046
- 47: SOLO-4047
- 48: SOLO-4048
- 49: SOLO-4049
- 50: SOLO-4050
- 51: SOLO-4051
- 52: SOLO-4052
- 53: SOLO-4053
- 54: SOLO-4054
- 55: SOLO-4055
- 56: SOLO-4056
- 57: SOLO-4057
- 58: SOLO-4058
- 59: SOLO-4059
- 60: SOLO-4060
- 61: SOLO-4061
- 62: SOLO-4062
- 63: SOLO-4063
- 64: SOLO-4064
- 65: SOLO-4065
- 66: SOLO-4066
- 67: SOLO-4067
- 68: SOLO-4068
- 69: SOLO-4069
- 70: SOLO-4070
- 71: SOLO-4071
- 72: SOLO-4072
- 73: SOLO-4073
- 74: SOLO-4074
- 75: SOLO-4075
- 76: SOLO-4076
1 - SOLO-4001
MissingArgumentError
| Code | SOLO-4001 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide the missing argument. Run solo –help for usage information
2 - SOLO-4002
IllegalArgumentError
| Code | SOLO-4002 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- An argument has an valid value or format.
- Verify the argument value before retrying
3 - SOLO-4003
InvalidOutputFormatError
| Code | SOLO-4003 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Valid output formats are: json, yaml, wide
4 - SOLO-4004
ConsensusNodeCountRequiredError
| Code | SOLO-4004 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Specify the number of consensus nodes using the –
flag, e.g. – 3
5 - SOLO-4005
InvalidPortNumberError
| Code | SOLO-4005 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Port numbers must be integers between 1 and 65535
6 - SOLO-4006
LocalBuildPathNotFoundSoloError
| Code | SOLO-4006 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the path exists: ls -la
- Set the correct path: solo consensus node setup –local-build-path
- Build the platform locally and point to the data/ directory output
7 - SOLO-4007
LocalBuildMissingSubdirectoriesSoloError
| Code | SOLO-4007 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the directory structure: ls -la
- Ensure the path points to the data/ directory of the Hedera platform build
- Expected layout:
/apps/.jar and /lib/ .jar (set via –local-build-path)
8 - SOLO-4008
LocalBuildNoJarFilesSoloError
| Code | SOLO-4008 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- List files in the directory: ls -la
- Ensure a complete platform build was performed before using –local-build-path
- Expected:
/apps/HederaNode.jar and /lib/*.jar
9 - SOLO-4009
NodeJarFilesNotInContainerSoloError
| Code | SOLO-4009 |
| Category | Validation |
| Ownership | Solo |
| Retryable | No |
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
- Run setup before starting: solo consensus node setup
- Verify the directory inside the pod: kubectl exec
-n – ls - Re-copy platform software: solo consensus node setup –local-build-path
10 - SOLO-4010
GrpcEndpointsRequiredSoloError
| Code | SOLO-4010 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide gRPC endpoints: solo consensus node add –grpc-endpoints ip:port,...
- Or switch endpoint type: solo consensus node add –endpoint-type FQDN
- Review flag usage: solo consensus node add –help
11 - SOLO-4011
OutputDirectoryNotSpecifiedSoloError
| Code | SOLO-4011 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide the output directory: solo node
–output-dir - Run with –help to see required flags: solo node
–help
12 - SOLO-4012
InputDirectoryNotSpecifiedSoloError
| Code | SOLO-4012 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide the input directory: solo node
–input-dir - Run with –help to see required flags: solo node
–help
13 - SOLO-4013
WrapsKeyPathNotFoundSoloError
| Code | SOLO-4013 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the path: ls -la
- Set the correct path: solo consensus node add –wraps-key-path
- Or omit the flag to download WRAPs keys automatically
14 - SOLO-4014
ConfigFileNotFoundSoloError
| Code | SOLO-4014 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the file exists: ls -la
- Set the correct file path for the –
flag - Run with –help for configuration file flags: solo consensus node setup –help
15 - SOLO-4015
NodeVersionMismatchSoloError
| Code | SOLO-4015 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Check the saved version: solo deployment config info –deployment
- Use the same version: solo consensus node setup –release-tag
- Or upgrade the network first: solo consensus network upgrade –upgrade-version
16 - SOLO-4016
UpgradeVersionNotFoundSoloError
| Code | SOLO-4016 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Check valid release versions: https://github.com/hashgraph/hedera-services/releases
- Use a published release tag: solo consensus network upgrade –upgrade-version v0.x.y
17 - SOLO-4017
PvcFlagNotEnabledSoloError
| Code | SOLO-4017 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Redeploy with PVCs enabled: solo consensus network deploy –pvcs true
- Check the current deployment configuration: solo deployment config info –deployment
- PVCs are required for node add operations to persist state across pod restarts
18 - SOLO-4018
NonInteractivePromptSoloError
| Code | SOLO-4018 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide required flags explicitly instead of relying on interactive prompts
- Use
to specify the deployment name - Run with –help to see all available flags: solo consensus node –help
19 - SOLO-4019
RealmShardVersionConstraintSoloError
| Code | SOLO-4019 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Use realm=0 and shard=0: solo consensus network deploy –realm 0 –shard 0
- Or upgrade to network node >=
: solo consensus network upgrade –upgrade-version
20 - SOLO-4020
WrapsVersionConstraintSoloError
| Code | SOLO-4020 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Upgrade consensus node first: solo consensus network upgrade –upgrade-version
- Or disable WRAPs: solo consensus network deploy –wraps false
21 - SOLO-4021
StateFilePathNotFoundSoloError
| Code | SOLO-4021 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the path exists: ls -la <path ?? ‘
'> - Download a valid state file first: solo consensus state download
- Then provide either the downloaded .zip file or the download parent directory using –state-file
- When a directory is provided, Solo looks for state files under:
/states/ /
22 - SOLO-4022
StateFileNotFoundSoloError
| Code | SOLO-4022 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the file exists and is a regular file: ls -la
- Make sure the path points to a .zip file, not a directory or missing symlink target.
- Download a valid state file first: solo consensus state download
- When using a directory, pass the parent directory; Solo looks under
/states/ / .
23 - SOLO-4023
InvalidStateFileFormatSoloError
| Code | SOLO-4023 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Use a state file ending in .zip with –state-file <stateFile.zip>
- Download a valid state file first: solo consensus state download
- If passing a directory instead, Solo will select node-specific state files from
/states/ / .
24 - SOLO-4024
InvalidStateZipFileNameSoloError
| Code | SOLO-4024 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Download a valid state file first: solo consensus state download
- Or rename the state zip file to use only letters, numbers, dots, underscores, and hyphens.
- The file name must not start with a hyphen and must not contain slashes, spaces, shell syntax, or path traversal.
- Example valid name: node1-state.zip
25 - SOLO-4025
ExplorerInvalidComponentIdSoloError
| Code | SOLO-4025 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Inspect remote config state for corruption: kubectl get configmap solo-remote-config -n
-o yaml - Check solo logs for config loading errors: tail -n 100 ~/.solo/logs/solo.log
- If the issue persists, this may be an internal bug — report it with your solo log
26 - SOLO-4026
RelayInvalidComponentIdSoloError
| Code | SOLO-4026 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Inspect remote config state for corruption: kubectl get configmap solo-remote-config -n
-o yaml - Check solo logs for config loading errors: tail -n 100 ~/.solo/logs/solo.log
- If the issue persists, this may be an internal bug — report it with your solo log
27 - SOLO-4027
OneShotCachedDeploymentNotFoundSoloError
| Code | SOLO-4027 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- List available deployments: solo deployment config list
- Specify the deployment explicitly with –deployment)
28 - SOLO-4028
MirrorNodeInvalidComponentIdSoloError
| Code | SOLO-4028 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Inspect remote config state for corruption: kubectl get configmap solo-remote-config -n
-o yaml - Check solo logs for config loading errors: tail -n 100 ~/.solo/logs/solo.log
- If the issue persists, this may be an internal bug — report it with your solo log
29 - SOLO-4029
BlockNodeLocalImageNotFoundSoloError
| Code | SOLO-4029 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the image exists locally: docker images | grep
- Pull the image if missing: docker pull
/block-node: - Ensure the tag is a valid semantic version
30 - SOLO-4030
BlockNodeInvalidComponentIdSoloError
| Code | SOLO-4030 |
| Category | Validation |
| Ownership | Solo |
| Retryable | No |
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
- Inspect remote config for corruption: kubectl get configmap solo-remote-config -n
-o yaml - Check solo logs for config loading errors: tail -n 100 ~/.solo/logs/solo.log
- If the issue persists, this may be an internal bug — report it with your solo log
31 - SOLO-4031
BlockNodePlatformVersionTooLowSoloError
| Code | SOLO-4031 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Upgrade your consensus node to at least version
before deploying block nodes - Check the current consensus node version: solo deployment config info
- Check solo logs: tail -n 100 ~/.solo/logs/solo.log
32 - SOLO-4032
BlockNodeLivenessPortVersionIncompatibleSoloError
| Code | SOLO-4032 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Upgrade your consensus node to at least version
- Or use a block node chart version below
33 - SOLO-4033
InvalidHbarAmountSoloError
| Code | SOLO-4033 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide a valid positive numeric HBAR amount (e.g., 100 or 0.5)
- Run solo ledger account create –help for usage information
34 - SOLO-4034
InvalidFileIdFormatSoloError
| Code | SOLO-4034 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide a file ID in the format 0.0.
(e.g., 0.0.150) - Run solo ledger file –help for usage information
35 - SOLO-4035
InvalidEndpointFormatSoloError
| Code | SOLO-4035 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide the endpoint in url:port format (e.g., 127.0.0.1:50211)
- Run solo –help for usage information
36 - SOLO-4036
InvalidCommaSeparatedStringSoloError
| Code | SOLO-4036 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide a comma-separated list of values (e.g., node1,node2,node3)
- Do not include spaces around commas unless they are part of the values
37 - SOLO-4037
InvalidConfigNumberValueSoloError
| Code | SOLO-4037 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide a valid integer or decimal number for this configuration option
- Run solo –help for usage information
38 - SOLO-4038
InvalidStorageTypeSoloError
| Code | SOLO-4038 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide a valid storage type value
- Run solo –help for usage information and supported storage types
39 - SOLO-4039
UnsupportedFlagFieldTypeSoloError
| Code | SOLO-4039 |
| Category | Validation |
| Ownership | Solo |
| Retryable | No |
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
- This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues
40 - SOLO-4040
VersionDowngradeBlockedSoloError
| Code | SOLO-4040 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Specify a version equal to or newer than the currently deployed version (
) using - Downgrades are not supported — check the available releases before upgrading
41 - SOLO-4041
AdminKeysCountMismatchSoloError
| Code | SOLO-4041 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide exactly
comma-separated DER encoded ED25519 public keys, one for each consensus node - Run solo consensus network deploy –help for usage information
42 - SOLO-4042
ComponentAlreadyExistsSoloError
| Code | SOLO-4042 |
| Category | Validation |
| Ownership | Solo |
| Retryable | No |
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
- This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues
43 - SOLO-4043
ComponentIdRequiredSoloError
| Code | SOLO-4043 |
| Category | Validation |
| Ownership | Solo |
| Retryable | No |
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
- This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues
44 - SOLO-4044
ComponentNotFoundSoloError
| Code | SOLO-4044 |
| Category | Validation |
| Ownership | Solo |
| Retryable | No |
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
- This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues
45 - SOLO-4045
ComponentNotInRemoteConfigSoloError
| Code | SOLO-4045 |
| Category | Validation |
| Ownership | Solo |
| Retryable | No |
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
- This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues
46 - SOLO-4046
UnknownComponentTypeSoloError
| Code | SOLO-4046 |
| Category | Validation |
| Ownership | Solo |
| Retryable | No |
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
- This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues
47 - SOLO-4047
ConfigFileInvalidSoloError
| Code | SOLO-4047 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the configuration file is a valid YAML or JSON document
- Check that the file is not empty and contains the expected fields
- Run solo config ops backup to export a valid configuration for reference
48 - SOLO-4048
MultipleClustersFoundSoloError
| Code | SOLO-4048 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Specify the cluster reference using the –cluster-ref flag
- List available cluster references: solo cluster-ref config list
49 - SOLO-4049
CacheNotMaterializedSoloError
| Code | SOLO-4049 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Check solo logs: tail -n 100 ~/.solo/logs/solo.log
- Run the cache pull step before using cached images: solo cache image –help
50 - SOLO-4050
CacheImageTemplateUnknownSoloError
| Code | SOLO-4050 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the cache image template key is correct in your configuration
- Declare the template in the templates section before using it in version fields
51 - SOLO-4051
InvalidKindNodeImageSoloError
| Code | SOLO-4051 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide a valid Kind node image reference (e.g., kindest/node:v1.27.0)
- Check the Kind documentation for supported image formats
52 - SOLO-4052
PathTraversalDetectedSoloError
| Code | SOLO-4052 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide a path that is within the allowed base directory
- Avoid using “..” path components that escape the base directory
53 - SOLO-4053
NodeAliasesMustBeArraySoloError
| Code | SOLO-4053 |
| Category | Validation |
| Ownership | Solo |
| Retryable | No |
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
- This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues
54 - SOLO-4054
UnknownNodeAliasSoloError
| Code | SOLO-4054 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the node alias ‘
’ is registered in the current deployment - Check registered nodes: solo deployment config info
55 - SOLO-4055
NodeAliasInferenceFailedSoloError
| Code | SOLO-4055 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the address data format is correct
- Ensure the address book contains valid node alias information
56 - SOLO-4056
NodeAliasParseFailedSoloError
| Code | SOLO-4056 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the node alias format (expected: node
where N is a positive integer) - Check deployment configuration for valid node aliases: solo deployment config info
57 - SOLO-4057
DomainNameParseFailedSoloError
| Code | SOLO-4057 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the domain name format is correct
- Check the address book configuration for valid domain names
58 - SOLO-4058
UnknownTemplateDependencySoloError
| Code | SOLO-4058 |
| Category | Validation |
| Ownership | Solo |
| Retryable | No |
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
- This is an internal Solo error. File a bug report: https://github.com/hiero-ledger/solo/issues
59 - SOLO-4059
NoConsensusNodesFoundSoloError
| Code | SOLO-4059 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the deployment has consensus nodes configured: solo deployment config info
- Deploy consensus nodes: solo consensus node setup
- Use –node-aliases to specify target nodes explicitly
60 - SOLO-4060
ServiceTypeMismatchSoloError
| Code | SOLO-4060 |
| Category | Validation |
| Ownership | Infrastructure |
| Retryable | No |
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
- Check solo logs: tail -n 100 ~/.solo/logs/solo.log
- Inspect Kubernetes services: kubectl get svc -n
- Verify the network is deployed correctly: solo consensus network deploy
61 - SOLO-4061
BackupConfigNotFoundSoloError
| Code | SOLO-4061 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the configuration file exists at:
- Export a new backup to generate a configuration file: solo config ops backup
62 - SOLO-4062
BackupConfigInvalidSoloError
| Code | SOLO-4062 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the configuration file is a valid YAML or JSON document and is not empty
- Export a new backup to generate a valid configuration file: solo config ops backup
63 - SOLO-4063
BackupConfigReadFailedSoloError
| Code | SOLO-4063 |
| Category | Validation |
| Ownership | Infrastructure |
| Retryable | No |
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
- Verify the file exists and is readable:
- Check file permissions
- Export a new backup to regenerate the configuration file: solo config ops backup
64 - SOLO-4064
BackupConfigMapKeyMissingSoloError
| Code | SOLO-4064 |
| Category | Validation |
| Ownership | Infrastructure |
| Retryable | No |
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
- Check solo logs: tail -n 100 ~/.solo/logs/solo.log
- Verify the Kubernetes ConfigMap contains the expected data
- Re-export the backup to regenerate the ConfigMap: solo config ops backup
65 - SOLO-4065
BackupConfigParseFailedSoloError
| Code | SOLO-4065 |
| Category | Validation |
| Ownership | Infrastructure |
| Retryable | No |
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
- Verify the backup configuration file is valid YAML or JSON
- Check that the configuration was exported with a compatible Solo version
- Re-export the backup to regenerate the configuration: solo config ops backup –deployment
66 - SOLO-4066
BackupInputDirectoryNotFoundSoloError
| Code | SOLO-4066 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the directory exists at:
- Use –input-dir to specify the correct path to the backup directory
- Run solo config ops restore-clusters –help for usage information
67 - SOLO-4067
BackupNoClusterDirectoriesSoloError
| Code | SOLO-4067 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the input directory contains cluster subdirectories:
- Ensure you are pointing to the correct backup directory
- Re-export the backup: solo config ops backup
68 - SOLO-4068
BackupClusterValidationFailedSoloError
| Code | SOLO-4068 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the backup archive was exported with compatible Solo and cluster versions
- Check cluster references: solo cluster-ref config list
- Re-export the backup from the original cluster: solo config ops backup
69 - SOLO-4069
BackupNoClusterInfoSoloError
| Code | SOLO-4069 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the backup configuration file contains cluster information
- Ensure the backup was exported with a compatible Solo version
- Re-export the backup: solo config ops backup
70 - SOLO-4070
BackupNoComponentsSoloError
| Code | SOLO-4070 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the backup archive contains component state information
- Ensure the backup was exported from a deployment with active components
- Re-export the backup: solo config ops backup
71 - SOLO-4071
BackupOptionsFileNotFoundSoloError
| Code | SOLO-4071 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the options file exists at:
- Run solo config ops restore-network –help for usage information
72 - SOLO-4072
BackupZipFileRequiredSoloError
| Code | SOLO-4072 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide the –zip-file flag when using –zip-password
- Run solo config ops restore-clusters –help for usage information
73 - SOLO-4073
BackupInputPathNotFoundSoloError
| Code | SOLO-4073 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the input path exists:
- Use –input-dir or –zip-file to specify the correct backup path
- Run solo config ops restore-clusters –help for usage information
74 - SOLO-4074
BackupInputMustBeZipSoloError
| Code | SOLO-4074 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Provide a .zip archive as the input path when using –zip-password
- Run solo config ops restore-clusters –help for usage information
75 - SOLO-4075
BackupNoLogFilesSoloError
| Code | SOLO-4075 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the backup archive contains log files for context ‘
’ - Check the backup directory structure for expected log files
- Re-export the backup to include log files: solo config ops backup
76 - SOLO-4076
FlagInputFailedSoloError
| Code | SOLO-4076 |
| Category | Validation |
| Ownership | User |
| Retryable | No |
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
- Verify the value provided for –
is valid - Run solo –help for usage information and accepted flag values