Skip to content

Debugging

Playbooks for the problems you'll actually hit. Most fall into one of two buckets: a deployment that won't update, or a flow that won't fire.

Deployment problems

Image not updating after a change

Symptom: pods keep running the old image despite code changes. Fix: the version didn't change. Run plasmactl component:bump, commit, push, redeploy — bump stamps the new git hash so the build pipeline picks it up.

StatefulSet not updating

Symptom: StatefulSet pods don't get the new image automatically. Cause: StatefulSets don't auto-roll like Deployments. Fix: confirm meta/plasma.yaml shows the new hash, then force recreation: kubectl delete pod <pod> -n <namespace> — it comes back with the new image.

Service pods crashing on config

Symptom: a service pod crashes with a configuration error. Fix: correct it in the service role, not the application that orchestrates it (see Configuration).

Variables not resolving

Symptom: a variable is missing or has the wrong value. Fix: check the three-tier resolution — is the variable component-prefixed, defined in defaults/main.yaml, and overridden in the right zone group_vars? Use plasmactl platform:variables-check to find orphans and missings.

Forcing a rebuild

When: a component needs rebuilding but component:bump says "nothing to bump" (e.g. a base image changed but your code didn't). Technique: manually edit the version field in meta/plasma.yaml to a different value. bump compares git state, so changing the recorded version triggers a fresh build.

RBAC problems

Symptom: CrashLoopBackOff with "access denied" or "Service Account permissions" errors. Fix: the workload is probably using custom RBAC. Remove it and adopt the centralized service-account pattern — verify the group_vars override exists for the zone.

Agent flows

When an agent doesn't behave, trace the channel chain backwards from the symptom — full table in Choreography → debugging agent flows:

Symptom Look at
Agent never fires Its channel subscription
Wrong agents fire A channel that's too broad
Wrong skill selected The agent's selection logic
Bad output The skill config or function
Output not reaching downstream Join vs divide on the output channel

→ Back to the Operate overview.