Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Customer Deployment Troubleshooting

Start with redacted state:

pretorin --json deployment flux status
pretorin --json deployment license status
kubectl --context <customer-context> --namespace pretorin get pods,jobs,helmreleases
kubectl --context <customer-context> --namespace flux-system \
  get ocirepositories,kustomizations

Update failures

SymptomMeaningAction
SourceVerified=FalseRelease or chart signature did not verifyStop. Confirm the out-of-band public-key fingerprint and registry referrers. Do not bypass verification.
OCI source authentication failureRead-only registry Secret is missing, expired, or lacks repository accessRefresh flux-system/pretorin-registry-credentials; do not put credentials in Helm values.
Release apply is suspendedApproval mode is waitingInspect the resolved candidate digest, approve the change, then run pretorin deployment flux resume.
Auth/API migration Job failsSchema change did not completeInspect the Job log and database health. Correct the cause and roll forward; do not force runtime Pods past the hook.
API waits for auth, or AI/web waits for APIDependency is not ready at the same release IDFix the first failed component. Later components are intentionally blocked.
Registry contains new images but nothing rollsImages are data, not a deployment triggerPublish and promote the signed release artifact. Never restart Pods merely to chase a mutable tag.
Old and new versions appear togetherA rollout is in progress or blockedCheck HelmRelease conditions, Deployment rollout status, and Pod image IDs. Do not retag images.

Useful controller logs:

kubectl --context <customer-context> --namespace flux-system \
  logs deployment/source-controller --since=30m
kubectl --context <customer-context> --namespace flux-system \
  logs deployment/kustomize-controller --since=30m
kubectl --context <customer-context> --namespace flux-system \
  logs deployment/helm-controller --since=30m

Review logs before sharing them outside the customer environment.

License errors

Status or denial codeAction
license_missing / missingInstall license.jwt and the trust bundle in the configured namespace.
license_not_yet_valid / not_yet_validVerify UTC time and the issued validity start.
license_expired / expiredObtain a renewal and run pretorin deployment license install; no rollout is needed.
license_deployment_mismatch / wrong_deploymentCompare pretorin deployment identity show with the request used for issuance. Restore the original identity or request reissuance.
license_invalid, invalid_signature, or unknown_keyConfirm the token and current public trust bundle came from the approved handoff. Do not edit the token.
license_configuration_error / configuration_errorConfirm the projected paths and trust-bundle JSON are present and readable; use only redacted status and local Auth diagnostics.
systems_limit_exceededExisting systems remain available. Contact Pretorin for a larger signed limit. Archived systems count.

Confirm resources exist without decoding them:

kubectl --context <customer-context> --namespace pretorin \
  get secret pretorin-license pretorin-deployment-identity
kubectl --context <customer-context> --namespace pretorin \
  get configmap pretorin-license-trust

Kubernetes projected volumes update eventually. Wait for the status endpoint to observe a renewal. Do not restart auth unless normal diagnostics prove the mounted file is not updating.

Platform and provider failures

SymptomFirst check
API/AI provider validation failsConfirm the OpenAI-compatible base URL ends in /v1, the configured model IDs exist, and NetworkPolicy permits both API and AI egress.
Embedding dimension mismatchUse the deployment’s approved embedding model/dimension; a schema change requires a planned migration.
Framework or source data is missingInspect the API seed/sync hook Jobs for the current release.
CLI hits hosted PretorinRun pretorin config list and set the private /api/v1/public endpoint.
CLI returns 401/403Authenticate against that endpoint with an API token carrying read scope for status commands.

If escalation is required, use the safe support inputs in Operations. Never attach decoded Secret data or a license token.