Skip to main content

Troubleshooting

To fix a problem, find its symptom on this page, check the cause, and apply the fix. If nothing matches, collect diagnostics and contact OpenLM support.

Pods​

These symptoms show in the pod status, its events, or its log:

SymptomCauseFix
Pending with didn't match Pod's node affinityNode placement is on, but no node carries the openlm.com/role labelLabel nodes, or set global.affinity.enabled: false and global.taints.enabled: false. Node placement
Pending with Too many podsThe node's pod limit is reachedEKS: more nodes or prefix delegation. K3s: max-pods=250. EKS, K3s
Pending with Insufficient cpu / memoryNot enough capacityAdd nodes. Requirements
PVC Pending, pod PendingWrong storage class, or provisioner annotation from another clusterCheck STORAGE_CLASS, generate the values file again (step 4), delete the PVC, run the installation again
ImagePullBackOffNo route to public.ecr.aws, or the mirror lacks the imageRegistry mirror
CreateContainerConfigErrorA Secret is missingRun create-openlm-secrets.sh again (step 3)
CrashLoopBackOff, log says too many open files / inotifyNode file-watch limit too lowNode settings
CrashLoopBackOff, log says Login failed for user or FormatExceptionSQL credentials wrongCheck SQL_USER / SQL_PASSWORD, run the secrets script again, restart
CrashLoopBackOff, log mentions Redis or abortConnectRedis unreachable, wrong password, or TLS mismatchCheck REDIS_*, especially REDIS_TLS
CrashLoopBackOff, log mentions Kafka bootstrap or brokerKafka unreachable, or it advertises an address pods can't reachStep 2.3
OOMKilledMemory limit too low for your data volumeRaise <component>.resources.limits.memory
OpenShift: FailedCreate ... security context constraintA component sets a user ID outside the project's rangeOpenShift values

Sign-in and screens​

These symptoms show in the browser or in the service logs:

SymptomCauseFix
Home page loads, every screen fails to load dataServices can't reach or don't trust https://DOMAIN/identityNetworking, TLS
Service logs show IdentityUnavailable (503)SameSame, then kubectl -n openlm rollout restart deployment
Browser loops between a screen and the sign-in pageIssuer settings don't match the browser's address, or http:// used somewhereSign-in and identity
/api/licensemanager/bff/user returns 404 instead of 401Services started while identity was down and run without securityRestart the services once identity is healthy
Internal HTTPS errors, browsers finePrivate CA, and the certificate file lacks the rootAdd the root to the end of the file, recreate openlm-lb-cert
OpenShift: sign-in answers 409The identity Route still rewrites its pathOpenShift Routes, step 2
OpenShift: a page shows the home page insteadThat page has no RouteOpenShift Routes, step 1

Installation and upgrades​

These symptoms show while you install, upgrade, or license OpenLM Platform:

SymptomCauseFix
helm stops with timed out waiting for the conditionThe topic setup job ran longer than --timeoutRun the same command again. It continues. Use --timeout 60m.
Changed a setting, nothing happenedHelm doesn't restart pods when only configuration content changeskubectl -n openlm rollout restart deployment
rendered manifests contain a resource that already existsAn object was created by hand (for example an OpenShift Route) with the same name the chart now usesDelete the hand-made object, run the installation again
Products show "not licensed" right after uploading the licenseProducts were activated before the license was uploadedWait about 12 hours, or contact OpenLM support
A service is Running but not ready, with many failed background jobsIts job health check fails after more than 10 failed jobsContact OpenLM support with the diagnostics

Collect diagnostics​

To collect diagnostics for OpenLM support, run this script. It writes a .tgz bundle:

NS=openlm; OUT=openlm-diag-$(date +%Y%m%d-%H%M); mkdir -p $OUT
helm -n $NS list -a > $OUT/helm-list.txt
helm -n $NS history openlm-platform > $OUT/helm-history.txt
kubectl -n $NS get pods -o wide > $OUT/pods.txt
kubectl -n $NS get events --sort-by=.lastTimestamp > $OUT/events.txt
for p in $(kubectl -n $NS get pods --no-headers | grep -vE "Running|Completed" | awk '{print $1}'); do
kubectl -n $NS describe pod $p > $OUT/describe-$p.txt
kubectl -n $NS logs $p --all-containers --tail=300 > $OUT/log-$p.txt 2>&1
kubectl -n $NS logs $p --all-containers --previous --tail=300 > $OUT/log-$p-previous.txt 2>&1
done
tar czf $OUT.tgz $OUT && echo "send $OUT.tgz to OpenLM support"

The bundle contains pod names, events, and logs, but no Secret contents. Look through it before you send it, in case your logs contain anything you'd rather not share.

The documentation team might draft this page using a large language model. A technical writer reviews every page and verifies it against the product before publishing it. A human makes the final decision.