Common Issues
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.