Help: Docker container shows as up but unhealthy. #451

Open
opened 2025-11-20 04:24:10 -05:00 by saavagebueno · 15 comments
Owner

Originally created by @devanteweary on GitHub (Oct 18, 2024).

TLDR: * Docker container shows as up but unhealthy.

  1. Is this urgent: No
  2. DNS provider(s) you use: Porkbun, Cloudflare, DuckDNS, NO-IP
  3. Program version: 2024-10-12T17:50:09.387Z (commit 74077df)
  4. What are you using to run the container: Unraid Docker
  5. Host OS: Unraid 6.12.13
  6. Extra information (optional)

This actually started happening months ago. I've just been too lazy to report it.

It was working fine, then one day it stopped.
Probably after an update or something.

The container will show as up but unhealthy.
For example, right now it shows "Up 16 hours (unhealthy)".

It seems to be working fine; the only reason I noticed is because now UptimeKuma reports it as down even though it's running.
I posted over there at the UptimeKuma github and they suggested if the container is showing up and unhealthy, it means the container itself is reporting an issue. (but if it showed healthy, then UptimeKuma could have been the issue).

Logs:



========================================
========================================
============= ddns-updater =============
========================================
=========== Made with ❤️ by ============
======= https://github.com/qdm12 =======
========================================
========================================

Running version latest built on 2024-10-12T17:50:09.387Z (commit 74077df)

🔧 Need help? ☕ Discussion? https://github.com/qdm12/ddns-updater/discussions/new/choose
🐛 Bug? ✨ New feature? https://github.com/qdm12/ddns-updater/issues/new/choose
💻 Email? quentin.mcgaw@gmail.com
💰 Help me? https://www.paypal.me/qmcgaw https://github.com/sponsors/qdm12
2024-10-17T22:27:38-07:00 INFO Settings summary:
├── HTTP client
|   └── Timeout: 10s
├── Update
|   ├── Period: 5m0s
|   └── Cooldown: 5m0s
├── Public IP fetching
|   ├── HTTP enabled: yes
|   ├── HTTP IP providers
|   |   └── all
|   ├── HTTP IPv4 providers
|   |   └── all
|   ├── HTTP IPv6 providers
|   |   └── all
|   ├── DNS enabled: yes
|   ├── DNS timeout: 3s
|   └── DNS over TLS providers
|       └── all
├── Resolver: use Go default resolver
├── Server
|   ├── Listening address: :8000
|   └── Root URL: /
├── Health
|   └── Server listening address: 127.0.0.1:9999
├── Paths
|   ├── Data directory: /updater/data
|   ├── Config file: /updater/data/config.json
|   └── Umask: system default
├── Backup
|   ├── Period: 24h0m0s
|   └── Directory: /updater/data/backup
└── Logger
    ├── Level: info
    └── Caller: hidden
2024-10-17T22:27:38-07:00 INFO reading JSON config from file /updater/data/config.json
2024-10-17T22:27:38-07:00 INFO Found 6 settings to update records

2024-10-17T22:27:38-07:00 INFO [healthcheck server] health http server listening on 127.0.0.1:9999
2024-10-17T22:27:38-07:00 INFO [http server] http server listening on [::]:8000
2024-10-17T22:27:38-07:00 INFO [backup] each 24h0m0s; writing zip files to directory /updater/data/backup

Configuration file (remove your credentials!):

{
  "settings": [
    {
      "provider": "porkbun",
      "domain": "mydomain.rocks",
      "api_key": "mykey",
      "secret_api_key": "mykey",
      "ip_version": "ipv4"
        },
    {
      "provider": "porkbun",
      "domain": "mydomain.com",
      "api_key": "mykey",
      "secret_api_key": "mykey",
      "ip_version": "ipv4"
        },
    {
      "provider": "cloudflare",
      "zone_identifier": "mykey",
      "domain": "mydomain.rocks",
      "ttl": 1,
      "token": "mykey",
      "ip_version": "ipv4"
        },
    {
      "provider": "cloudflare",
      "zone_identifier": "myid",
      "domain": "mydomain.com",
      "ttl": 1,
      "token": "mykey",
      "ip_version": "ipv4"
        },
    {
      "provider": "noip",
      "domain": "mydomain.servebeer.com",
      "username": "myusername",
      "password": "mypass",
      "ip_version": "ipv4"
        },
    {
      "provider": "duckdns",
      "domain": "mydomain.duckdns.org",
      "token": "mykey",
      "ip_version": "ipv4"
        }
  ]
}


And lastly, my container settings for ddns-updater:

image

Originally created by @devanteweary on GitHub (Oct 18, 2024). **TLDR**: * Docker container shows as up but unhealthy. 1. Is this urgent: No 2. DNS provider(s) you use: Porkbun, Cloudflare, DuckDNS, NO-IP 3. Program version: 2024-10-12T17:50:09.387Z (commit 74077df) 4. What are you using to run the container: Unraid Docker 5. Host OS: Unraid 6.12.13 6. Extra information (optional) This actually started happening months ago. I've just been too lazy to report it. It was working fine, then one day it stopped. Probably after an update or something. The container will show as up but unhealthy. For example, right now it shows "Up 16 hours (unhealthy)". It seems to be working fine; the only reason I noticed is because now UptimeKuma reports it as down even though it's running. I posted over there at the UptimeKuma github and they suggested if the container is showing up and unhealthy, it means the container itself is reporting an issue. (but if it showed healthy, then UptimeKuma could have been the issue). Logs: ``` ======================================== ======================================== ============= ddns-updater ============= ======================================== =========== Made with ❤️ by ============ ======= https://github.com/qdm12 ======= ======================================== ======================================== Running version latest built on 2024-10-12T17:50:09.387Z (commit 74077df) 🔧 Need help? ☕ Discussion? https://github.com/qdm12/ddns-updater/discussions/new/choose 🐛 Bug? ✨ New feature? https://github.com/qdm12/ddns-updater/issues/new/choose 💻 Email? quentin.mcgaw@gmail.com 💰 Help me? https://www.paypal.me/qmcgaw https://github.com/sponsors/qdm12 2024-10-17T22:27:38-07:00 INFO Settings summary: ├── HTTP client | └── Timeout: 10s ├── Update | ├── Period: 5m0s | └── Cooldown: 5m0s ├── Public IP fetching | ├── HTTP enabled: yes | ├── HTTP IP providers | | └── all | ├── HTTP IPv4 providers | | └── all | ├── HTTP IPv6 providers | | └── all | ├── DNS enabled: yes | ├── DNS timeout: 3s | └── DNS over TLS providers | └── all ├── Resolver: use Go default resolver ├── Server | ├── Listening address: :8000 | └── Root URL: / ├── Health | └── Server listening address: 127.0.0.1:9999 ├── Paths | ├── Data directory: /updater/data | ├── Config file: /updater/data/config.json | └── Umask: system default ├── Backup | ├── Period: 24h0m0s | └── Directory: /updater/data/backup └── Logger ├── Level: info └── Caller: hidden 2024-10-17T22:27:38-07:00 INFO reading JSON config from file /updater/data/config.json 2024-10-17T22:27:38-07:00 INFO Found 6 settings to update records 2024-10-17T22:27:38-07:00 INFO [healthcheck server] health http server listening on 127.0.0.1:9999 2024-10-17T22:27:38-07:00 INFO [http server] http server listening on [::]:8000 2024-10-17T22:27:38-07:00 INFO [backup] each 24h0m0s; writing zip files to directory /updater/data/backup ``` Configuration file (**remove your credentials!**): ``` { "settings": [ { "provider": "porkbun", "domain": "mydomain.rocks", "api_key": "mykey", "secret_api_key": "mykey", "ip_version": "ipv4" }, { "provider": "porkbun", "domain": "mydomain.com", "api_key": "mykey", "secret_api_key": "mykey", "ip_version": "ipv4" }, { "provider": "cloudflare", "zone_identifier": "mykey", "domain": "mydomain.rocks", "ttl": 1, "token": "mykey", "ip_version": "ipv4" }, { "provider": "cloudflare", "zone_identifier": "myid", "domain": "mydomain.com", "ttl": 1, "token": "mykey", "ip_version": "ipv4" }, { "provider": "noip", "domain": "mydomain.servebeer.com", "username": "myusername", "password": "mypass", "ip_version": "ipv4" }, { "provider": "duckdns", "domain": "mydomain.duckdns.org", "token": "mykey", "ip_version": "ipv4" } ] } ``` And lastly, my container settings for ddns-updater: ![image](https://github.com/user-attachments/assets/753394a0-2a08-4c74-95d8-f196be47d292)
Author
Owner

@tegralens commented on GitHub (Oct 18, 2024):

I have the same issue as well. I thought it was just me. I'm using portainer with Cloudflare.

@tegralens commented on GitHub (Oct 18, 2024): I have the same issue as well. I thought it was just me. I'm using portainer with Cloudflare.
Author
Owner

@raintheory commented on GitHub (Oct 18, 2024):

Seeing this as well in Dockge using Cloudflare, DuckDNS, & NoIP.

@raintheory commented on GitHub (Oct 18, 2024): Seeing this as well in Dockge using Cloudflare, DuckDNS, & NoIP.
Author
Owner

@qdm12 commented on GitHub (Oct 23, 2024):

Maybe you need to set the cloudflare "proxied": true field?

@qdm12 commented on GitHub (Oct 23, 2024): Maybe you need to set the cloudflare `"proxied": true` field?
Author
Owner

@qdm12 commented on GitHub (Oct 23, 2024):

Otherwise, please share the healthcheck failing error message which you can find with docker inspect <container-name>

@qdm12 commented on GitHub (Oct 23, 2024): Otherwise, please share the healthcheck failing error message which you can find with `docker inspect <container-name>`
Author
Owner

@tegralens commented on GitHub (Oct 27, 2024):

Maybe you need to set the cloudflare "proxied": true field?

I have 1 with proxied true and one without same issue.

@tegralens commented on GitHub (Oct 27, 2024): > Maybe you need to set the cloudflare `"proxied": true` field? I have 1 with proxied true and one without same issue.
Author
Owner

@tegralens commented on GitHub (Oct 27, 2024):

I keep seeing things like this. But I removed that website and it still shows another. Funny thing is that it still works. I changed the IPs and Macs.

    "Id": "xxxxxxx",
    "Created": "2024-10-18T22:53:20.852455308Z",
    "Path": "/updater/ddns-updater",
    "Args": [],
    "State": {
        "Status": "running",
        "Running": true,
        "Paused": false,
        "Restarting": false,
        "OOMKilled": false,
        "Dead": false,
        "Pid": 816737,
        "ExitCode": 0,
        "Error": "",
        "StartedAt": "2024-10-18T23:06:16.705617709Z",
        "FinishedAt": "2024-10-18T23:05:24.744813042Z",
        "Health": {
            "Status": "unhealthy",
            "FailingStreak": 12832,
            "Log": [
                {
                    "Start": "2024-10-27T17:58:11.692148835-04:00",
                    "End": "2024-10-27T17:58:11.924436088-04:00",
                    "ExitCode": 1,
                    "Output": "2024-10-27T17:58:11-04:00 ERROR program is unhealthy: lookup IP addresses do not match: 111.1                       7.111.111,111.01.66.238,2222:0000:4444::5555:42ee,eeee:ffff:aaaa::cccc:dddd instead of 1.1.1.1 for photos.website.com                       \n\n2024-10-27T17:58:11-04:00 INFO Shutdown successful\n"
                },
                {
                    "Start": "2024-10-27T17:59:11.997433439-04:00",
                    "End": "2024-10-27T17:59:12.208252816-04:00",
                    "ExitCode": 1,
                    "Output": "2024-10-27T17:59:12-04:00 ERROR program is unhealthy: lookup IP addresses do not match: 111.0                       1.66.238,111.17.111.111,2222:0000:4444::5555:42ee,eeee:ffff:aaaa::cccc:dddd instead of 1.1.1.1 for photos.website.com                       \n\n2024-10-27T17:59:12-04:00 INFO Shutdown successful\n"
                },
                {
                    "Start": "2024-10-27T18:00:12.282896157-04:00",
                    "End": "2024-10-27T18:00:12.519523973-04:00",
                    "ExitCode": 1,
                    "Output": "2024-10-27T18:00:12-04:00 ERROR program is unhealthy: lookup IP addresses do not match: 111.1                       7.111.111,111.01.66.238,eeee:ffff:aaaa::cccc:dddd,2222:0000:4444::5555:42ee instead of 1.1.1.1 for photos.website.com                       \n\n2024-10-27T18:00:12-04:00 INFO Shutdown successful\n"
                },
                {
                    "Start": "2024-10-27T18:01:12.594592554-04:00",
                    "End": "2024-10-27T18:01:12.830547315-04:00",
                    "ExitCode": 1,
                    "Output": "2024-10-27T18:01:12-04:00 ERROR program is unhealthy: lookup IP addresses do not match: 111.0                       1.66.238,111.17.111.111,2222:0000:4444::5555:42ee,eeee:ffff:aaaa::cccc:dddd instead of 1.1.1.1 for photos.website.com                       \n\n2024-10-27T18:01:12-04:00 INFO Shutdown successful\n"
                },
                {
                    "Start": "2024-10-27T18:02:12.909410735-04:00",
                    "End": "2024-10-27T18:02:13.12192341-04:00",
                    "ExitCode": 1,
                    "Output": "2024-10-27T18:02:13-04:00 ERROR program is unhealthy: lookup IP addresses do not match: 111.0                       1.66.238,111.17.111.111,eeee:ffff:aaaa::cccc:dddd,2222:0000:4444::5555:42ee instead of 1.1.1.1 for photos.website.com                       \n\n2024-10-27T18:02:13-04:00 INFO Shutdown successful\n"
                }
            ]
        }
    },
@tegralens commented on GitHub (Oct 27, 2024): I keep seeing things like this. But I removed that website and it still shows another. Funny thing is that it still works. I changed the IPs and Macs. "Id": "xxxxxxx", "Created": "2024-10-18T22:53:20.852455308Z", "Path": "/updater/ddns-updater", "Args": [], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 816737, "ExitCode": 0, "Error": "", "StartedAt": "2024-10-18T23:06:16.705617709Z", "FinishedAt": "2024-10-18T23:05:24.744813042Z", "Health": { "Status": "unhealthy", "FailingStreak": 12832, "Log": [ { "Start": "2024-10-27T17:58:11.692148835-04:00", "End": "2024-10-27T17:58:11.924436088-04:00", "ExitCode": 1, "Output": "2024-10-27T17:58:11-04:00 ERROR program is unhealthy: lookup IP addresses do not match: 111.1 7.111.111,111.01.66.238,2222:0000:4444::5555:42ee,eeee:ffff:aaaa::cccc:dddd instead of 1.1.1.1 for photos.website.com \n\n2024-10-27T17:58:11-04:00 INFO Shutdown successful\n" }, { "Start": "2024-10-27T17:59:11.997433439-04:00", "End": "2024-10-27T17:59:12.208252816-04:00", "ExitCode": 1, "Output": "2024-10-27T17:59:12-04:00 ERROR program is unhealthy: lookup IP addresses do not match: 111.0 1.66.238,111.17.111.111,2222:0000:4444::5555:42ee,eeee:ffff:aaaa::cccc:dddd instead of 1.1.1.1 for photos.website.com \n\n2024-10-27T17:59:12-04:00 INFO Shutdown successful\n" }, { "Start": "2024-10-27T18:00:12.282896157-04:00", "End": "2024-10-27T18:00:12.519523973-04:00", "ExitCode": 1, "Output": "2024-10-27T18:00:12-04:00 ERROR program is unhealthy: lookup IP addresses do not match: 111.1 7.111.111,111.01.66.238,eeee:ffff:aaaa::cccc:dddd,2222:0000:4444::5555:42ee instead of 1.1.1.1 for photos.website.com \n\n2024-10-27T18:00:12-04:00 INFO Shutdown successful\n" }, { "Start": "2024-10-27T18:01:12.594592554-04:00", "End": "2024-10-27T18:01:12.830547315-04:00", "ExitCode": 1, "Output": "2024-10-27T18:01:12-04:00 ERROR program is unhealthy: lookup IP addresses do not match: 111.0 1.66.238,111.17.111.111,2222:0000:4444::5555:42ee,eeee:ffff:aaaa::cccc:dddd instead of 1.1.1.1 for photos.website.com \n\n2024-10-27T18:01:12-04:00 INFO Shutdown successful\n" }, { "Start": "2024-10-27T18:02:12.909410735-04:00", "End": "2024-10-27T18:02:13.12192341-04:00", "ExitCode": 1, "Output": "2024-10-27T18:02:13-04:00 ERROR program is unhealthy: lookup IP addresses do not match: 111.0 1.66.238,111.17.111.111,eeee:ffff:aaaa::cccc:dddd,2222:0000:4444::5555:42ee instead of 1.1.1.1 for photos.website.com \n\n2024-10-27T18:02:13-04:00 INFO Shutdown successful\n" } ] } },
Author
Owner

@jrwhitehead commented on GitHub (Oct 28, 2024):

I have the same type of message as [tegralens]. It is due to split-brain DNS.

ddns-updater was resolving widgets.domain.com locally to 172.16.x.x and was configure to update the A record for widgets.domain.com externally (ovbiously to a different address).

@jrwhitehead commented on GitHub (Oct 28, 2024): I have the same type of message as [tegralens]. It is due to split-brain DNS. ddns-updater was resolving widgets.domain.com locally to 172.16.x.x and was configure to update the A record for widgets.domain.com externally (ovbiously to a different address).
Author
Owner

@devanteweary commented on GitHub (Oct 29, 2024):

Otherwise, please share the healthcheck failing error message which you can find with docker inspect <container-name>

Hey, sorry it took a week.

OK I tried proxied true and it showed me a different error in the web UI.

Here's the docker inspect results: after adding proxied:true > https://pastebin.com/Tk6LPYEk

So I'm guessing when a DNS record is fails to update, for some reason reports the Docker container as unhealthy, which then UptimeKuma sees as unhealthy.
The container and program itself are working just fine and as intended.

Is there a way to unlink the health of the container from if DNS don't get updated?
I imagine that'd have to be an update of some sort?

And to reiterate, this only started happening several updates ago.
Just thought I'd throw that out there again!

Ok thank you!

@devanteweary commented on GitHub (Oct 29, 2024): > Otherwise, please share the healthcheck failing error message which you can find with `docker inspect <container-name>` Hey, sorry it took a week. OK I tried proxied true and it showed me a different error in the web UI. Here's the docker inspect results: after adding proxied:true > https://pastebin.com/Tk6LPYEk So I'm guessing when a DNS record is fails to update, for some reason reports the Docker container as unhealthy, which then UptimeKuma sees as unhealthy. The container and program itself are working just fine and as intended. Is there a way to unlink the health of the container from if DNS don't get updated? I imagine that'd have to be an update of some sort? And to reiterate, this only started happening several updates ago. Just thought I'd throw that out there again! Ok thank you!
Author
Owner

@devanteweary commented on GitHub (Dec 10, 2024):

@qdm12 - Hey just wanted to let you know, since the last update (or maybe last couple), the issue seems to have gone away and now ddns-updater shows as up and running again in UptimeKuma.

(looks like it started working again on the 5th)

@devanteweary commented on GitHub (Dec 10, 2024): @qdm12 - Hey just wanted to let you know, since the last update (or maybe last couple), the issue seems to have gone away and now ddns-updater shows as up and running again in UptimeKuma. (looks like it started working again on the 5th)
Author
Owner

@hackaro commented on GitHub (Jul 30, 2025):

Hi there

I have exactly the same problem,

  • Is this urgent: YES

  • DNS provider(s) you use: Cloudflare

  • Program version: v 2.9.0

  • What are you using to run the container: Linux

  • Host OS: Linux Mint 22.1 Cinnamon

@qdm12 sorry for disturbing you, (and I have also opened an help request), It drives me crazy ... on the first attempt the error was gone away just inserting a DNS_RESOLVER_ADDRESS as 1.1.1.1:53 (I thought I need it because I use AdGuardHome that acts as internal DNS and my internal router points to it) but as soon as my dynamic IP's changed the error reappears again... I have no clue...

Sometimes I get a different error that sounds like that: Failure (getting record id: Get "https://api.cloudflare.com/client/v4/zones/743209857092348570293/dns_records?name=my.domain&page=1&per_page=1&type=A": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)), 3m4s ago

@hackaro commented on GitHub (Jul 30, 2025): Hi there I have exactly the same problem, - Is this urgent: YES - DNS provider(s) you use: Cloudflare - Program version: v 2.9.0 - What are you using to run the container: Linux - Host OS: Linux Mint 22.1 Cinnamon @qdm12 sorry for disturbing you, (and I have also opened an help request), It drives me crazy ... on the first attempt the error was gone away just inserting a DNS_RESOLVER_ADDRESS as 1.1.1.1:53 (I thought I need it because I use AdGuardHome that acts as internal DNS and my internal router points to it) but as soon as my dynamic IP's changed the error reappears again... I have no clue... Sometimes I get a different error that sounds like that: Failure (getting record id: Get "https://api.cloudflare.com/client/v4/zones/743209857092348570293/dns_records?name=my.domain&page=1&per_page=1&type=A": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)), 3m4s ago
Author
Owner

@devanteweary commented on GitHub (Aug 1, 2025):

Yeah actually, the problem did come back. I'm just not sure when. But yeah ddns-updater shows up as unhealthy again in Unraid.

@devanteweary commented on GitHub (Aug 1, 2025): Yeah actually, the problem did come back. I'm just not sure when. But yeah ddns-updater shows up as unhealthy again in Unraid.
Author
Owner

@hackaro commented on GitHub (Aug 13, 2025):

Yeah... I had to temporarily switch to another service for solving the problem! :-(

@hackaro commented on GitHub (Aug 13, 2025): Yeah... I had to temporarily switch to another service for solving the problem! :-(
Author
Owner

@blimeybloke commented on GitHub (Aug 21, 2025):

Yeah... I had to temporarily switch to another service for solving the problem! :-(

What service? Thanks

@blimeybloke commented on GitHub (Aug 21, 2025): > Yeah... I had to temporarily switch to another service for solving the problem! :-( What service? Thanks
Author
Owner

@hackaro commented on GitHub (Aug 21, 2025):

Yeah... I had to temporarily switch to another service for solving the problem! :-(

What service? Thanks

A docker named favonia/cloudflare-ddns, but of course it works with cloud flare service only.

@hackaro commented on GitHub (Aug 21, 2025): > > Yeah... I had to temporarily switch to another service for solving the problem! :-( > > What service? Thanks A docker named favonia/cloudflare-ddns, but of course it works with cloud flare service only.
Author
Owner

@blimeybloke commented on GitHub (Aug 21, 2025):

Yeah... I had to temporarily switch to another service for solving the problem! :-(

What service? Thanks

A docker named favonia/cloudflare-ddns, but of course it works with cloud flare service only.

Thanks, I just found that 20 minutes ago as well. Going to start looking into it.

@blimeybloke commented on GitHub (Aug 21, 2025): > > > Yeah... I had to temporarily switch to another service for solving the problem! :-( > > > > > > What service? Thanks > > A docker named favonia/cloudflare-ddns, but of course it works with cloud flare service only. Thanks, I just found that 20 minutes ago as well. Going to start looking into it.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ddns-updater#451