Direct answer
Helm tried to access a nested property on a value that is missing or null. Confirm the complete values path and provide a safe default before dereferencing it.
Where this error appears
Helm 3 and Helm 4 template rendering
Root cause
A template such as .Values.service.type assumes that service is a map. If service is missing, null, or replaced by a scalar, evaluating type fails before a default at the final field can help.
Minimal reproduction
# values.yaml is empty
# template
type: {{ .Values.service.type }}Corrected example
{{- $service := .Values.service | default dict -}}
type: {{ $service.type | default "ClusterIP" }}Verify the fix
helm lint ./chart && helm template demo ./chart --debugThings to check
- Check spelling and nesting in every values file.
- Use values.schema.json when a field is required.
- Do not hide genuinely required values behind defaults.
Authoritative reference
Confirm version-specific behavior in Helm template debugging。