Gyro Containers common errors: image cannot be pulled, crashing, out of memory, port mismatch, no capacity
1. How to diagnose
- In the Services table look at the service's status label; the problem name and a suggested fix appear under the row.
- With Logs > Previous instance read the last log of the crashed instance (Logs and graphs).
- Look at Latest warnings in the environment.
gyro container service get 12345 api # state + problem code
gyro container logs 12345 api --previous 1
gyro container events 12345
2. Error table
| Shown in the panel | Technical code | Meaning and fix |
|---|---|---|
| Image cannot be pulled | ImagePullBackOff / ErrImagePull | The image name or tag is wrong, or credentials for a private registry are missing. Check the name/tag (try docker pull); for a private image enter the credentials in Node Pool > Private image registry (first app). In the Gyro registry the address must be registry.ist.gyrohosting.com/<your-code>/…. |
| Invalid image | InvalidImageName | There is a typo in the image name (for example a space or capital letter). Check the name:tag form. |
| Application crashing | CrashLoopBackOff | The application stops as soon as it starts. Read the Previous instance log: a missing environment variable, no database connection, a wrong command. |
| Out of memory | OOMKilled | The memory reserved for the replica is not enough. Increase Memory / replica in New revision / settings (your capacity must allow it). |
| No capacity / Waiting for capacity | Unschedulable | There is no room in the node pool or the nodes are being prepared. Reduce the replica count or size, wait until the nodes are Ready, or move to a higher package. |
| Start-up configuration error | CreateContainerConfigError | Most often the image wants the root user. Use a non-root image or add USER 10001 to the Dockerfile. |
| Could not start | CreateContainerError / RunContainerError | The command or arguments are wrong. Check the Command field (a JSON array or space separated). |
| Ran and finished | Completed | Services must keep running; your application exits at once. Make sure it starts a foreground server process. |
| Exited with an error | Error | Check the logs. |
3. Port mismatch and health check
Symptom: The service stays in Deploying or the ready replica count shows 0/1; when you open the address you get 502/503.
Cause: Your application listens on a different port than the one you entered in the panel (for example 8080 in the panel but 3000 in the app), or it listens only on 127.0.0.1, or the health check path is not answering.
Fix:
- Confirm the port the application listens on from the logs.
- In New revision / settings set Port to the application's port.
- The application must listen on
0.0.0.0(for exampleapp.run(host="0.0.0.0", port=8080));localhostis reachable only from inside the container. - The health check path must be
/or a path that really returns 200. If unsure, leave it empty (a TCP check is used).
4. Error messages when creating a service
| Message | Fix |
|---|---|
| "Service name: lowercase letters, digits and '-', starts with a letter, up to 40 characters, cannot start with 'gyro-'." | Write the name according to the rule. |
| "A service with this name exists." | Choose another name. |
| "You reached the service limit." | 10/20/40 services depending on the package; delete unused ones or move to a higher package. |
| "Not enough capacity in your node pool…" | Reduce replicas/size; compare the needed and available capacity in the message. |
| "Replica count is outside the plan limit." | Do not exceed the replica count allowed in the package (5/10/20). |
| "Port must be 1-65535; a public service needs a port." | Enter a port for a public service. |
| "Invalid variable name/value (GYRO_ and reserved prefixes)." | Change the variable name. |
| "This image cannot be used on the platform." / "The image failed the security scan." | You cannot use a rejected image; try another. |
| "The service is suspended; changes are not allowed." | Top up your balance (suspension). |
| "Too many actions, try again in a few minutes." | A short rate limit; wait a little. |
Domain and certificate issues
If a domain stays Waiting for DNS, check the DNS record and any proxy; details are in Domain and SSL.
5. If it is still not solved
When you open a support ticket write: your service number, the service name, the status label, the relevant 10-20 lines from the Previous instance log (remove passwords and keys) and the approximate time of the error.
6. Frequently asked questions
The service first showed "Waiting for capacity"; what should I do?
With a new order the nodes take a few minutes to be prepared; services start when the Node Pool shows Ready.
Every release fails but the old revision keeps running; what should I do?
This is expected: old replicas are not stopped until the new revision is ready. Fix the error and release again, or return to the previous revision.
My application runs for a minute and then crashes; what should I do?
Look at the logs and the memory graph; it may be a memory leak or too little memory (OOMKilled).
The image cannot be pulled from the Gyro registry; what should I do?
The image name must be under your code prefix; the image may have been deleted by automatic clean-up. Check whether it is in the Image Registry list.
Next step
Thanks for your feedback!