Troubleshooting
This guide covers common issues encountered when operating a Self-Managed Kindo installation and how to resolve them.
Service Health
Pods Not Starting
| Symptom | Likely Cause | Solution |
|---|---|---|
ImagePullBackOff | Registry credentials missing or expired | Verify imagePullSecrets in your Helm values and renew registry tokens |
CrashLoopBackOff | Missing environment variables or bad config | Check pod logs with kubectl logs <pod> for the specific error |
Pending | Insufficient cluster resources | Check node capacity with kubectl describe nodes and scale up if needed |
Init:Error | Database migration failed | Check init container logs — usually a connectivity or permissions issue |
Checking Service Logs
# View logs for a specific servicekubectl logs -n kindo deployment/api --tail=100
# Follow logs in real timekubectl logs -n kindo deployment/api -f
# View previous container logs (after a crash)kubectl logs -n kindo deployment/api --previousDatabase Issues
PostgreSQL Connection Failures
If services cannot connect to PostgreSQL:
- Verify the database is running:
kubectl get pods -n postgres - Check connection string: Ensure
DATABASE_URLin your secrets matches the actual PostgreSQL host, port, and credentials. - Test connectivity: Run a
psqlcommand from within the cluster to verify network access. - Check max connections: Under heavy load, PostgreSQL may run out of connections. Increase
max_connectionsor use PgBouncer.
Migration Errors
If a service fails to start with a migration error:
- Check the pod logs for the specific migration that failed.
- Verify the database user has
CREATE,ALTER, andINSERTpermissions on the target schema. - If a migration is partially applied, do not retry without investigating — contact Kindo support for guidance.
Redis and Conversation Streaming
Conversations Hang or Produce No Output
If users send messages but never see a streaming response, Redis may be running in sharded cluster mode. Kindo currently requires a non-sharded Redis deployment for conversation streaming.
Check your Redis mode:
redis-cli INFO server | grep redis_moderedis_mode:standaloneorredis_mode:sentinel— compatibleredis_mode:cluster— not currently compatible; reconfigure to standalone or sentinel
For full Redis configuration guidance, see Infrastructure Requirements — Redis.
Authentication and SSO
SSO Login Fails
| Symptom | Solution |
|---|---|
| Redirect loop after login | Verify AUTH_BASE_URL matches the actual domain users access |
| SAML assertion error | Check that the IdP’s ACS URL matches SSOReady’s AUTH_BASE_URL |
| User not found after SSO | Verify the SAML attribute mapping includes email and organization ID |
See the SSO Setup Guide for complete configuration details.
Integrations
Nango Connection Failures
- Verify
NANGO_URLis reachable from both the API and task-worker-ts services. - Check that
NANGO_SECRET_KEYis correct and not expired. - For OAuth integrations, verify the callback URL is
<NANGO_URL>/oauth/callback.
MCP Server Issues
- Verify the MCP server pod is running:
kubectl get pods -n mcp - Check that
mcpServerUrlin theIntegrationConfigtable is correct. - Test connectivity from the API pod:
curl http://mcp-<service>.mcp:80/health
Observability
No Traces or Metrics
| Symptom | Cause | Solution |
|---|---|---|
| No traces in Jaeger/Tempo | OTEL Collector not receiving data | Verify OTEL_EXPORTER_OTLP_ENDPOINT points to the collector |
| No metrics in Grafana | Metrics exporter disabled | Set OTEL_METRICS_EXPORTER=otlp |
| Disconnected traces | Context not propagated between services | Ensure W3C traceparent headers pass through your ingress |
See the Observability Guide for complete configuration details.
Common Environment Variable Issues
| Variable | Common Mistake | Fix |
|---|---|---|
OTEL_SDK_DISABLED | Set to true accidentally | Remove or set to false |
NANGO_URL | Missing protocol (nango.example.com instead of https://nango.example.com) | Include https:// |
NEXT_PUBLIC_* | Changed after build | Next.js public env vars are baked in at build time — rebuild after changing |
Getting Help
If you cannot resolve an issue:
- Collect service logs and pod describe output.
- Note the Kindo version (Helm chart version) and Kubernetes version.
- Contact Kindo support with the collected information.
Next Steps
- Observability Guide for monitoring and alerting setup
- Upgrades for version upgrade procedures
- FAQ for general platform questions