Deployment configuration mismatch

The deployment failed because a required configuration value, environment variable, or secret was absent or had an unexpected value for the target environment.

config-mismatch medium confidence deploy

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

  1. 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
    
  2. List all environment variables the pod sees to confirm keys are mounted:

    kubectl exec <pod> -- env | sort
    
  3. Add or update the missing keys in the secret or ConfigMap, then re-trigger the deployment.

  4. If a key was renamed, update both the secret store and the deployment spec in the same commit to avoid drift.

  5. 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_NAME shows 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.

Try it on your own failed log

$ faultline analyze failed.log
Want this across every CI run? Faultline Teams tracks recurring failures across all your repos and surfaces patterns in a shared dashboard.