Skip to main content
This page covers common failures when deploying the Tyk Developer Portal on Kubernetes. For installation steps and configuration, see Install Developer Portal on Kubernetes.

Bootstrap Job Fails: Pod Security Standards Violation

Symptom: helm install completes but the bootstrap job fails with a security policy error, for example:
Cause: The bootstrap job runs as root and does not support security context configuration via values.yaml. Clusters enforcing the Kubernetes PSS Restricted or Baseline profiles will reject it. Fix: Disable the automatic bootstrap job and bootstrap the portal manually:
  1. Set global.components.bootstrap: false in your values.yaml and run helm upgrade.
  2. Wait for the Portal pod to be ready:
  3. Send the bootstrap request to create the bootstrap admin user:
Once the call succeeds, the Portal shuts down the temporary bootstrap server and completes startup.
This is a known limitation in the Helm chart. The bootstrap job template does not yet support security context configuration. Use global.components.bootstrap: false and bootstrap manually as described above.

Portal Pod Crash-Looping

Symptom: The Portal pod restarts repeatedly. Inspect the pod state and logs:

Probe Timeouts: Pod Killed Before Startup Completes

Symptom: Kubernetes terminates the pod before it finishes starting. Logs show:
Cause: The Portal’s /ready endpoint performs a live database ping on every probe check. Short-lived database latency (TLS handshake overhead or connection pool delays) can cause the probe to time out, triggering Kubernetes to restart the pod before it has fully initialized. Fix: Increase the probe delays and thresholds in your values.yaml:
If the Portal connects to a database over a high-latency or TLS-secured link, increase initialDelaySeconds further (e.g., 300).

PostgreSQL Date Format Mismatch

Symptom: The pod enters CrashLoopBackOff immediately after starting, even though the database is reachable. Logs contain:
Cause: The date format returned by the PostgreSQL server does not match the ISO format that the Portal expects. This occurs when the PostgreSQL DateStyle is not set to ISO. Fix: Append datestyle and lc_time options to your database.connectionString in values.yaml. For a DSN-format connection string:
For a URL-format connection string:

License Key Not Set

If the Portal is started without a valid Tyk license, it logs the following at startup: Fix: Set the license field in your values.yaml. If using a Kubernetes secret, confirm the secret contains a DevPortalLicense key and that useSecretName references it:

Environment Variables Not Taking Effect

Symptom: Configuration set via extraEnvs (such as PORTAL_STORAGE or PORTAL_DATABASE_DIALECT) is not reflected at runtime. The Portal continues using previous values. Cause: The Helm chart generates environment variables for certain fields (including storage type and database dialect) from its own templated values. Variables passed through extraEnvs may be overridden by these chart-generated values. Fix: Use the chart’s native fields in values.yaml instead of extraEnvs for these settings: Reserve extraEnvs for configuration options that have no direct Helm chart equivalent.