Skip to main content

Error Codes

Purpose: For operators, provides a lookup table of error codes grouped by category with messages and resolution steps.

Error Code Format

Error codes follow the pattern E<category><number>:

PrefixCategoryRange
E1xxCLI errorsE100–E199
E2xxValidation errorsE200–E299
E3xxProvisioning errorsE300–E399
E4xxGitOps errorsE400–E499

CLI Errors (E1xx)

CodeMessageResolution
E100no cluster name provided and no active cluster setRun opencenter cluster use <name> or pass the cluster name as argument.
E101cluster not found: <name>Verify cluster exists: opencenter cluster list. Check organization name if using org/cluster format.
E102configuration file not foundRun opencenter cluster init <name> to create the configuration.
E103failed to resolve path for clusterEnsure configuration directory exists: ~/.config/opencenter/clusters.
E104unsupported infrastructure provider: <name>Use one of: openstack, aws, gcp, azure, baremetal, vsphere, vmware, kind.
E105command not found: <tool>Install the required tool. Check PATH includes the tool binary.
E106permission denied: <path>Check file/directory permissions. Cluster secrets require 0600.
E107cluster name cannot be emptyProvide a cluster name. Names must be lowercase alphanumeric with hyphens.
E108invalid cluster name formatUse lowercase letters, numbers, and hyphens. Must start and end with alphanumeric. Max 63 characters.
E109organization name format invalidUse lowercase letters, numbers, and hyphens. No path separators.
E110configuration already exists (use --force to overwrite)Pass --force to overwrite or choose a different cluster name.
E111active cluster session conflictAnother session is using this cluster. Wait or use --force.
E112CLI version incompatible with cluster schemaUpgrade the CLI: opencenter self-update or use the version matching your cluster.

Validation Errors (E2xx)

CodeMessageResolution
E200schema validation failedRun opencenter cluster validate --verbose for detailed field errors.
E201required field missing: <path>Add the missing field to your configuration file.
E202invalid type for <field>: expected <type>Correct the field value type (e.g., integer instead of string).
E203invalid CIDR format: <field>Use valid CIDR notation (e.g., 10.42.0.0/16). Prefix length must be 0–32.
E204subnet overlap detectedUse non-overlapping CIDR ranges for pod, service, and node subnets.
E205vrrp_ip must be set when use_octavia=false and vrrp_enabled=trueSet networking.vrrp_ip or enable Octavia.
E206exactly one network_plugin must be enabledEnable only one of: calico, cilium, kube-ovn.
E207unsupported deployment method: <name>Use kubespray or kamaji.
E208cross-field dependency violationCheck that conditional fields match. Run opencenter cluster validate --verbose.
E209OpenStack auth URL is not a valid absolute URLSet a full URL: https://identity.example.com:5000/v3.
E210SOPS key validation failedGenerate a key: opencenter secrets keys generate. Verify the key file exists and has correct format.
E211gitops repository URL must use ssh or httpsUse ssh://git@... or https://... format. HTTP is not accepted.
E212service <name> requires secret: <path>Set the required secret value in your configuration.
E213OpenStack network_plugin cannot use install_method "kubespray"Use helm or kustomize-helm for OpenStack CNI install method.
E214configuration is nilInternal error. Re-run opencenter cluster init.
E215invalid enum value for <field>Check allowed values in the configuration schema.

Provisioning Errors (E3xx)

CodeMessageResolution
E300infrastructure provisioning failedCheck OpenTofu logs in the state directory. Verify cloud credentials.
E301failed to reach OpenStack auth URLVerify network access to the Keystone endpoint. Check firewall rules.
E302OpenStack authentication failedVerify application credentials. Check project/domain names.
E303image ID not found in OpenStackVerify the image exists: openstack image show <id>.
E304flavor not foundList available flavors: openstack flavor list. Update config.
E305quota exceededRequest quota increase or reduce resource requests.
E306network not foundVerify network exists and is accessible from the project.
E307timeout waiting for cluster to be readyCheck node health. Inspect kubelet logs on control plane nodes.
E308SSH connection failed to nodeVerify bastion connectivity, SSH key, and security group rules.
E309Kubespray playbook failedReview Ansible output. Common: package install timeout, network issues.
E310kind cluster creation failedCheck Docker is running. Verify port conflicts on 6443.
E311terraform state lockedAnother operation is running. Wait or manually unlock: tofu force-unlock <id>.
E312kubeconfig not found after deployCheck bootstrap logs. The kubeconfig is written to the state directory.

GitOps Errors (E4xx)

CodeMessageResolution
E400GitRepository auth failedRecreate the SSH deploy key: flux create secret git.
E401Kustomization path not foundVerify the --path matches the directory structure in the repository.
E402SOPS decryption failedRecreate the Age secret: kubectl create secret generic sops-age --from-file=age.agekey=<keyfile> -n flux-system.
E403HelmRelease stuck in InstallingImage pull failure. Verify registry access and containerd mirror configuration.
E404manifest validation failedRun kustomize build locally. Check YAML syntax.
E405git push failed: authenticationVerify token or deploy key has write access to the repository.
E406gitops.git_dir must be configuredSet opencenter.gitops.repository.local_dir in cluster config.
E407unencrypted secrets detectedRun opencenter secrets sync to encrypt. Do not commit plaintext secrets.
E408stub secrets must be replacedReplace CHANGEME/PLACEHOLDER values with actual credentials.
E409flux bootstrap failedCheck token validity. Verify the repository exists and token has admin access.
E410reconciliation timeoutCheck flux events. Common: dependency not ready, resource conflict.
E411gitops-base tag not foundVerify the tag exists in the openCenter-gitops-base repository. Update to a valid release.
E412dirty working tree prevents deployCommit or stash changes: git add . && git commit or git stash.
E413origin remote URL mismatchThe local remote doesn't match gitops.repository.url. Run git remote set-url origin <url>.

Structured Error Output

For CI/CD pipelines, use JSON output:

opencenter cluster validate --output json

Returns:

{
"valid": false,
"target": {"cluster": "prod-cluster", "organization": "myorg", "provider": "openstack"},
"mode": "offline",
"summary": {"total_errors": 2, "total_warnings": 1},
"errors": [
{
"section": "Infrastructure > Cloud",
"field": "auth_url",
"yaml_path": "opencenter.infrastructure.cloud.openstack.auth_url",
"message": "OpenStack auth URL is required",
"severity": "error",
"suggestion": "Set opencenter.infrastructure.cloud.openstack.auth_url"
}
]
}