Skip to main content

Troubleshooting

Start with health and workload state:

curl -fsS https://loadouthq.example.com/health/live
curl -fsS https://loadouthq.example.com/health/ready
kubectl -n loadouthq get pods,deploy,svc,ingress
kubectl -n loadouthq get events --sort-by=.lastTimestamp
kubectl -n loadouthq logs deploy/loadouthq-api --since=15m

HTTP 423​

Read /api/v1/license/status: missing requires activation; invalid means the file, signature, key ID, or claims were rejected; not_yet_valid requires checking dates and cluster time; expired requires renewal. A mounted file takes precedence over an uploaded license.

Readiness failure​

The response identifies database, cache, or storage. Confirm routes, TLS, credentials, DNS, and dependency health. For S3-compatible storage, verify endpoint, region, path-style mode, bucket, and list permission.

For bundled Valkey, confirm the dependency pod and Service, then verify that REDIS_URL uses the current release name and that REDIS_PASSWORD exists in valkey.auth.usersExistingSecret:

kubectl -n loadouthq get pod,svc,pvc -l app.kubernetes.io/name=valkey
kubectl -n loadouthq logs deploy/loadouthq-valkey --since=15m

OIDC failure​

Confirm public base URL, issuer, client ID, client secret, and the exact registered callback. Verify forwarding headers, certificate trust, and clock synchronization.

Configurable validation unavailable​

In Skill validation, OpenAI validation not configured means that either OPENAI_API_KEY is absent from the runtime Secret or OPENAI_VALIDATION_MODEL is empty. Confirm the Secret key mapping and rendered non-secret values without printing the key:

kubectl -n loadouthq get secret loadouthq-runtime -o jsonpath='{.data.OPENAI_API_KEY}' | wc -c
kubectl -n loadouthq get configmap loadouthq-loadouthq-config -o jsonpath='{.data.OPENAI_VALIDATION_MODEL}'
kubectl -n loadouthq rollout restart deployment/loadouthq-loadouthq-api

For failed runs, use the check's Audit page to inspect the error code, attempt count, token usage, and provider latency. Verify egress and TLS access to OPENAI_BASE_URL. A provider timeout is controlled by VALIDATION_OPENAI_TIMEOUT_MS; retries are capped by VALIDATION_OPENAI_MAX_ATTEMPTS.

Artifact pull failure​

Authenticate Helm and the cluster image-pull Secret, confirm the release tag exists, and verify repositories. OCI chart versions omit the leading v used by Git tags.

Safe support bundle​

helm -n loadouthq list
helm -n loadouthq get manifest loadouthq
kubectl -n loadouthq get pods,deploy,svc,ingress -o wide
kubectl -n loadouthq get events --sort-by=.lastTimestamp

Before sharing, remove Secret data, environment values, headers, database URLs, credentials, tokens, and the raw license. Include timestamps and non-sensitive error codes.