This is what the command outputs (I removed all extra duplicate logs)
{
"query": "query ($appName: String!, $deploymentId: ID!, $evaluationId: String!) { app(name: $appName) { deploymentStatus(id: $deploymentId, evaluationId: $evaluationId) { id inProgress status successful description version desiredCount placedCount healthyCount unhealthyCount allocations { id idShort status region desiredStatus version healthy failed canary restarts checks { status serviceName } } } } }",
"variables": {
"appName": "bakery",
"deploymentId": "3e1c17a4-8e8d-dcb5-d4db-84b3f124b0bc",
"evaluationId": "2d77eba8-7977-fbf7-8665-b241a7d1689b"
}
}
DEBUG {}
DEBUG <-- 200 https://api.fly.io/graphql (377.1ms)
{
"data": {
"app": {
"deploymentStatus": {
"id": "3e1c17a4-8e8d-dcb5-d4db-84b3f124b0bc",
"inProgress": true,
"status": "running",
"successful": false,
"description": "Deployment is running",
"version": 9,
"desiredCount": 1,
"placedCount": 1,
"healthyCount": 0,
"unhealthyCount": 1,
"allocations": [
{
"id": "0d3bcd2c-adc8-6a0e-4dab-23eb2bb377d0",
"idShort": "0d3bcd2c",
"status": "pending",
"region": "ams",
"desiredStatus": "run",
"version": 9,
"healthy": true,
"failed": false,
"canary": false,
"restarts": 0,
"checks": []
}
]
}
}
}
1 desired, 1 placed, 0 healthy, 1 unhealthy
DEBUG --> POST https://api.fly.io/graphql
{
"query": "query ($appName: String!, $deploymentId: ID!, $evaluationId: String!) { app(name: $appName) { deploymentStatus(id: $deploymentId, evaluationId: $evaluationId) { id inProgress status successful description version desiredCount placedCount healthyCount unhealthyCount allocations { id idShort status region desiredStatus version healthy failed canary restarts checks { status serviceName } } } } }",
"variables": {
"appName": "bakery",
"deploymentId": "3e1c17a4-8e8d-dcb5-d4db-84b3f124b0bc",
"evaluationId": "2d77eba8-7977-fbf7-8665-b241a7d1689b"
}
}
DEBUG {}
DEBUG <-- 200 https://api.fly.io/graphql (367.9ms)
{
"data": {
"app": {
"deploymentStatus": {
"id": "3e1c17a4-8e8d-dcb5-d4db-84b3f124b0bc",
"inProgress": false,
"status": "failed",
"successful": false,
"description": "Failed due to unhealthy allocations - no stable job version to auto revert to",
"version": 9,
"desiredCount": 1,
"placedCount": 1,
"healthyCount": 0,
"unhealthyCount": 1,
"allocations": [
{
"id": "0d3bcd2c-adc8-6a0e-4dab-23eb2bb377d0",
"idShort": "0d3bcd2c",
"status": "pending",
"region": "ams",
"desiredStatus": "run",
"version": 9,
"healthy": true,
"failed": false,
"canary": false,
"restarts": 0,
"checks": []
}
]
}
}
}
1 desired, 1 placed, 0 healthy, 1 unhealthy
--> v9 failed - Failed due to unhealthy allocations - no stable job version to auto revert to and deploying as v10
--> Troubleshooting guide at https://fly.io/docs/getting-started/troubleshooting/
Error abort
Seems like my image is unhealthy? How does fly determine this?
My image exposes port 8080, and this is also configured as the âinternal_portâ in the fly.toml (see below). Itâs an express server that calls app.listen(8080, '0.0.0.0')
.
# fly.toml file generated for bakery on 2022-11-21T22:56:54+01:00
app = "bakery"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []
[env]
[experimental]
allowed_public_ports = []
auto_rollback = true
[[services]]
http_checks = []
internal_port = 8080
processes = ["app"]
protocol = "tcp"
script_checks = []
[services.concurrency]
hard_limit = 25
soft_limit = 20
type = "connections"
[[services.ports]]
force_https = true
handlers = ["http"]
port = 80
[[services.ports]]
handlers = ["tls", "http"]
port = 443
[[services.tcp_checks]]
grace_period = "30s"
interval = "15s"
restart_limit = 6
timeout = "2s"
port = "8080"