Matched signals
- missing configuration
- config not found
- no such secret
- secret not found
- configmap not found
- invalid configuration
- cannot find key
Deployment configuration mismatch
What this failure means
The deployment failed because a required configuration value, environment variable, or secret was absent or had an unexpected value for the target environment.
Symptoms
Faultline looks for one or more of these log fragments:
missing configuration
config not found
no such secret
secret not found
configmap not found
invalid configuration
cannot find key
Diagnosis
The deployment failed because a required configuration value, environment variable, or secret was absent or had an unexpected value for the target environment.
This usually happens when a deployment references a secret or ConfigMap that was never provisioned, or when a key name changed in code without a matching change to the environment definition.
Fix steps
-
Compare expected configuration keys against what is present in the target environment. For Kubernetes:
kubectl get secret <name> -n <namespace> -o jsonpath="{.data}" | jq "keys" kubectl get configmap <name> -n <namespace> -o yaml -
List all environment variables the pod sees to confirm keys are mounted:
kubectl exec <pod> -- env | sort -
Add or update the missing keys in the secret or ConfigMap, then re-trigger the deployment.
-
If a key was renamed, update both the secret store and the deployment spec in the same commit to avoid drift.
-
Add a start-of-process config validation step in the application that lists every missing required key at boot time rather than failing later with a cryptic error.
Validation
kubectl exec <pod> -- env | grep KEY_NAMEshows the expected value.- Re-run the deployment and confirm it reaches the Running / Ready state.
Why it matters
Configuration mismatches occur when a new deployment requires values that were never provisioned in the target environment, or when a key was renamed in code but not updated in the secret store or ConfigMap.
Prevention
- Enumerate all required configuration keys in a well-known location (e.g.,
.env.example). - Add a configuration validation step at container startup that fails fast with a clear error listing every missing key.
- Use a deployment checklist or IaC tooling (Helm, Terraform) that manages secrets and ConfigMaps alongside the deployment.
Try it locally
kubectl get secret <name> -n <namespace> -o yaml
kubectl get configmap <name> -n <namespace> -o yaml
kubectl exec <pod> -- env | sort
kubectl rollout status deploy/<name>
How Faultline detects it
Use faultline explain config-mismatch to see the full playbook.
faultline analyze build.log
faultline explain config-mismatch
Generated from playbooks/bundled/log/deploy/config-mismatch.yaml. Do not edit directly.