Skip to main content
This page lists common failure modes for the chart with their diagnostic and recovery steps.

Engine never becomes Ready: “local file system for managed storage”

The engine logs:
customEngineConfig.storage is unset. Without object storage the engine does not enter the Ready state. Configure object storage and run helm upgrade. See Object Storage. Confirm the failure is the managed-storage check:

Engine CrashLoopBackOff: metadata RPC failure at startup

Engine logs show a gRPC error connecting to the Metadata Service. The most common cause is an engine-metadata image-version mismatch. The two images are not version-tolerant of each other. Inspect the rendered tags:
Keep engineSpec.image.tag and metadata.image.tag in lockstep. By default both fall back to Chart.yaml’s appVersion, which is correct. See Image overrides.

Gateway returns 404 or “no upstream”

The X-Firebolt-Engine header value does not match any name under engines:. The Envoy Lua filter also rejects names that are not RFC 1123 DNS labels (lowercase alphanumerics and hyphens, max 63 chars) with a 400. Confirm what engines the release knows about:
Use a matching engine name, or add the engine to engines: and helm upgrade.

Engine pod stuck Pending

The PVC is unbound. The chart provisions PVCs without storageClassName and falls back to the cluster default StorageClass. Inspect the PVCs and the cluster’s storage classes:
Either mark a StorageClass as default (storageclass.kubernetes.io/is-default-class: "true"), or set an explicit class:

ImagePullBackOff from a private registry

The kubelet cannot authenticate to the registry that hosts the engine or metadata image. The chart does not create pull secrets. Reference one explicitly:
Create the Secret in the release namespace:
See Image overrides.

Pre-commit hook aborts the commit on first run

When editing the chart, the helm-docs pre-commit hook regenerates helm/README.md and stages the result. If the regeneration changes the file, the commit aborts so you can re-run git commit with the now-staged README included. This is intentional. Re-running the same commit succeeds.