Common Issues
This article covers common problems you may encounter when using Bahriya and how to resolve them.
This article covers common problems you may encounter when using Bahriya and how to resolve them.
Container stuck in "Provisioning"
Symptoms: Your container stays in the "Provisioning" state for longer than a few minutes.
Possible causes:
- The container image cannot be pulled. Check that the image reference is correct (including the tag) and that registry credentials are configured if the image is private.
- The region you selected may be experiencing temporary capacity constraints.
What to do:
- Verify the image name and tag are correct.
- If using a private registry, check that the registry credentials are correct and deployed to the same regions as the container.
- Wait a few minutes — some deployments take longer during peak usage.
- If the problem persists, contact support.
Container keeps restarting
Symptoms: The container starts but then restarts repeatedly.
Possible causes:
- Your application is crashing on startup (e.g. missing environment variable, database connection failure).
- The health check path is returning an error or the endpoint does not exist.
- The bootstrap time is too short for your application to finish initialising.
What to do:
- Check your application logs for crash messages or stack traces.
- Verify the health check path exists in your application and returns a 2xx response.
- Increase the bootstrap time if your application takes a while to start (e.g. loading large datasets, running migrations).
- Ensure all required environment variables and secrets are attached to the container.
Image pull errors
Symptoms: Deployment fails with an image pull error.
Possible causes:
- The image reference is wrong (typo in the name or tag).
- The image does not exist in the registry (it may have been deleted or the tag was overwritten).
- Registry credentials are missing, expired, or incorrect.
- The registry is configured but not deployed to the same regions as the container.
What to do:
- Double-check the full image reference, including the registry URL and tag.
- Verify the image exists by pulling it locally:
docker pull <image>. - Check that registry credentials are correct and deployed to all regions where the container runs.
Custom domain not working
Symptoms: Your custom domain shows a browser error, certificate warning, or does not resolve.
Possible causes:
- DNS records have not propagated yet.
- The DNS record type is wrong (e.g. A record instead of CNAME).
- The CNAME target is incorrect.
- A CDN or proxy (e.g. Cloudflare) is intercepting the TLS certificate provisioning.
What to do:
- Check DNS propagation with
dig <your-domain>or an online DNS checker. - Verify you created the correct record type for your DNS mode (CNAME for round-robin/geo, A records for none mode).
- If using Cloudflare or another proxy, temporarily disable proxying to allow certificate provisioning, then re-enable it.
- Wait up to 48 hours for DNS propagation in some cases, though most changes take effect within minutes.
Rate limiting not taking effect
Symptoms: You enabled rate limiting but clients are not being throttled.
What to do:
- Changes take effect on the next deployment cycle. If you just enabled rate limiting, wait a minute for the deployment to complete.
- Verify that rate limiting is enabled and the per-minute or per-hour values are set (not just the toggle).
Secrets not available in container
Symptoms: Your application cannot find environment variables that should come from a secret.
Possible causes:
- The secret is not attached to the container.
- The secret is not deployed to the same regions as the container.
- The secret was updated but the container has not been redeployed.
What to do:
- Check the container settings to verify the secret is attached.
- Verify the secret is deployed to all regions where the container runs.
- Trigger a redeployment by updating the container (e.g. change the image tag) to pick up the latest secret values.
Autoscaling not working
Symptoms: Your container is not scaling up under load, or not scaling down when load decreases.
Possible causes:
- Autoscaling is not enabled on the container.
- The target CPU or memory percentage is set too high (e.g. 100%), so the threshold is never reached.
- The container is already at its maximum replica count.
What to do:
- Verify autoscaling is enabled with appropriate min/max replica counts.
- Set a realistic target (70-80% CPU is a common starting point).
- Check that your container's resource requests are appropriate — if you request too much CPU, utilisation will appear low even under load.