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 --debug

Things 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