Bug: dnsomatic: lookup IP addresse do not match when IP change #327

Closed
opened 2025-11-20 04:22:46 -05:00 by saavagebueno · 9 comments
Owner

Originally created by @goluftwaffe on GitHub (Nov 8, 2023).

This occur every time my public IP changes, the update at dnsomatic is made, but container become unhealthy and ddns-updater webpage is not update with the new ip. if I delete update.json and restart, all is ok

  1. Is this urgent: No

  2. DNS provider(s) you use: dnsomatic

  3. Program version:

    Running version latest built on 2023-10-14T09:56:50.040Z (commit e635b19)

  4. What are you using to run the container: docker compose

  5. Extra information (optional)

When I run docker inspect ddns-updater I have four lines with:

ERROR program is unhealthy: lookup IP addresses do not match: #newip# instead of #oldip# for #domain#\n\n2023-11-08T20:44:24-05:00 INFO Shutdown successful\n"

Logs:

2023-11-08T03:26:14-05:00 DEBUG your public IP address are: v4 or v6: invalid IP, v4: #OldIP#, v6: invalid IP
2023-11-08T03:26:14-05:00 DEBUG IPv4 address of #domain# is #OldIP# and your IPv4 address is #OldIP#, skipping update
2023-11-08T03:31:14-05:00 DEBUG configured to fetch IP: v4 or v6: false, v4: true, v6: false
2023-11-08T03:31:14-05:00 DEBUG your public IP address are: v4 or v6: invalid IP, v4: #OldIP#, v6: invalid IP
2023-11-08T03:31:14-05:00 DEBUG IPv4 address of #domain# is #OldIP# and your IPv4 address is #OldIP#, skipping update
2023-11-08T03:36:14-05:00 DEBUG configured to fetch IP: v4 or v6: false, v4: true, v6: false
2023-11-08T03:36:19-05:00 WARN obtaining ipv4 address: try 1 of 3: Get "https://api.ipify.org": context deadline exceeded
2023-11-08T03:36:22-05:00 WARN obtaining ipv4 address: try 2 of 3: dial tcp4 1.1.1.1:853: i/o timeout
2023-11-08T03:36:22-05:00 WARN obtaining ipv4 address: try 3 of 3: Get "http://ip1.dynupdate.no-ip.com": net/http: HTTP/1.x transport connection broken: unexpected EOF
2023-11-08T03:36:22-05:00 DEBUG your public IP address are: v4 or v6: invalid IP, v4: invalid IP, v6: invalid IP
2023-11-08T03:36:22-05:00 ERROR Get "http://ip1.dynupdate.no-ip.com": net/http: HTTP/1.x transport connection broken: unexpected EOF
2023-11-08T03:36:22-05:00 DEBUG IPv4 address of #domain# is 10.0.0.1 and your IPv4 address is invalid IP, skipping update
2023-11-08T03:41:14-05:00 DEBUG configured to fetch IP: v4 or v6: false, v4: true, v6: false
2023-11-08T03:41:14-05:00 DEBUG your public IP address are: v4 or v6: invalid IP, v4: #NewIP#, v6: invalid IP
2023-11-08T03:41:14-05:00 DEBUG IPv4 address of #domain# is #NewIP# and your IPv4 address is #NewIP#, skipping update
2023-11-08T03:46:14-05:00 DEBUG configured to fetch IP: v4 or v6: false, v4: true, v6: false
2023-11-08T03:46:15-05:00 DEBUG your public IP address are: v4 or v6: invalid IP, v4: #NewIP#, v6: invalid IP
2023-11-08T03:46:15-05:00 DEBUG IPv4 address of #domain# is #NewIP# and your IPv4 address is #NewIP#, skipping update

Configuration file (remove your credentials!):

  ddns-updater:
    image: qmcgaw/ddns-updater
    container_name: ddns-updater
    #network_mode: bridge
    ports:
      - 8000:8000/tcp
    volumes:
      - /home/username/ddns-updater/data:/updater/data
    environment:
      - TZ=America/Montreal
      - HEALTH_SERVER_ADDRESS=127.0.0.1:9999
      - CONFIG=
      - PERIOD=5m
      - UPDATE_COOLDOWN_PERIOD=5m
      - PUBLICIP_FETCHERS=all
      - PUBLICIP_HTTP_PROVIDERS=all #google
      - PUBLICIPV4_HTTP_PROVIDERS=all
      - PUBLICIP_DNS_PROVIDERS=all
      - PUBLICIP_DNS_TIMEOUT=3s
      - HTTP_TIMEOUT=10s
      - RESOLVER_ADDRESS=1.1.1.1:53
      - RESOLVER_TIMEOUT=5s
      # Web UI
      - LISTENING_PORT=8000
      - ROOT_URL=/
      # Backup
      - BACKUP_PERIOD=0 # 0 to disable
      - BACKUP_DIRECTORY=/updater/data
      # Other
      - LOG_LEVEL=debug
      - LOG_CALLER=hidden
    restart: unless-stopped
{
  "settings": [
    {
      "provider": "dnsomatic",
      "domain": "domain",
      "host": "@",
      "username": "username",
      "password": "password",
      "provider_ip": true,
      "ip_version": "ipv4"
    }
  ]
}

Host OS:

Originally created by @goluftwaffe on GitHub (Nov 8, 2023). <!-- HAVE A CHAT FIRST! https://github.com/qdm12/ddns-updater/discussions --> This occur every time my public IP changes, the update at dnsomatic is made, but container become unhealthy and ddns-updater webpage is not update with the new ip. if I delete update.json and restart, all is ok 1. Is this urgent: No 2. DNS provider(s) you use: dnsomatic 3. Program version: Running version latest built on 2023-10-14T09:56:50.040Z (commit e635b19) 4. What are you using to run the container: docker compose 5. Extra information (optional) When I run docker inspect ddns-updater I have four lines with: ERROR program is unhealthy: lookup IP addresses do not match: #newip# instead of #oldip# for #domain#\n\n2023-11-08T20:44:24-05:00 INFO Shutdown successful\n" Logs: ```log 2023-11-08T03:26:14-05:00 DEBUG your public IP address are: v4 or v6: invalid IP, v4: #OldIP#, v6: invalid IP 2023-11-08T03:26:14-05:00 DEBUG IPv4 address of #domain# is #OldIP# and your IPv4 address is #OldIP#, skipping update 2023-11-08T03:31:14-05:00 DEBUG configured to fetch IP: v4 or v6: false, v4: true, v6: false 2023-11-08T03:31:14-05:00 DEBUG your public IP address are: v4 or v6: invalid IP, v4: #OldIP#, v6: invalid IP 2023-11-08T03:31:14-05:00 DEBUG IPv4 address of #domain# is #OldIP# and your IPv4 address is #OldIP#, skipping update 2023-11-08T03:36:14-05:00 DEBUG configured to fetch IP: v4 or v6: false, v4: true, v6: false 2023-11-08T03:36:19-05:00 WARN obtaining ipv4 address: try 1 of 3: Get "https://api.ipify.org": context deadline exceeded 2023-11-08T03:36:22-05:00 WARN obtaining ipv4 address: try 2 of 3: dial tcp4 1.1.1.1:853: i/o timeout 2023-11-08T03:36:22-05:00 WARN obtaining ipv4 address: try 3 of 3: Get "http://ip1.dynupdate.no-ip.com": net/http: HTTP/1.x transport connection broken: unexpected EOF 2023-11-08T03:36:22-05:00 DEBUG your public IP address are: v4 or v6: invalid IP, v4: invalid IP, v6: invalid IP 2023-11-08T03:36:22-05:00 ERROR Get "http://ip1.dynupdate.no-ip.com": net/http: HTTP/1.x transport connection broken: unexpected EOF 2023-11-08T03:36:22-05:00 DEBUG IPv4 address of #domain# is 10.0.0.1 and your IPv4 address is invalid IP, skipping update 2023-11-08T03:41:14-05:00 DEBUG configured to fetch IP: v4 or v6: false, v4: true, v6: false 2023-11-08T03:41:14-05:00 DEBUG your public IP address are: v4 or v6: invalid IP, v4: #NewIP#, v6: invalid IP 2023-11-08T03:41:14-05:00 DEBUG IPv4 address of #domain# is #NewIP# and your IPv4 address is #NewIP#, skipping update 2023-11-08T03:46:14-05:00 DEBUG configured to fetch IP: v4 or v6: false, v4: true, v6: false 2023-11-08T03:46:15-05:00 DEBUG your public IP address are: v4 or v6: invalid IP, v4: #NewIP#, v6: invalid IP 2023-11-08T03:46:15-05:00 DEBUG IPv4 address of #domain# is #NewIP# and your IPv4 address is #NewIP#, skipping update ``` Configuration file (**remove your credentials!**): ```yml ddns-updater: image: qmcgaw/ddns-updater container_name: ddns-updater #network_mode: bridge ports: - 8000:8000/tcp volumes: - /home/username/ddns-updater/data:/updater/data environment: - TZ=America/Montreal - HEALTH_SERVER_ADDRESS=127.0.0.1:9999 - CONFIG= - PERIOD=5m - UPDATE_COOLDOWN_PERIOD=5m - PUBLICIP_FETCHERS=all - PUBLICIP_HTTP_PROVIDERS=all #google - PUBLICIPV4_HTTP_PROVIDERS=all - PUBLICIP_DNS_PROVIDERS=all - PUBLICIP_DNS_TIMEOUT=3s - HTTP_TIMEOUT=10s - RESOLVER_ADDRESS=1.1.1.1:53 - RESOLVER_TIMEOUT=5s # Web UI - LISTENING_PORT=8000 - ROOT_URL=/ # Backup - BACKUP_PERIOD=0 # 0 to disable - BACKUP_DIRECTORY=/updater/data # Other - LOG_LEVEL=debug - LOG_CALLER=hidden restart: unless-stopped ``` ```json { "settings": [ { "provider": "dnsomatic", "domain": "domain", "host": "@", "username": "username", "password": "password", "provider_ip": true, "ip_version": "ipv4" } ] } ``` Host OS:
Author
Owner

@madmalkav commented on GitHub (Nov 10, 2023):

Happening to me, too.

@madmalkav commented on GitHub (Nov 10, 2023): Happening to me, too.
Author
Owner

@goluftwaffe commented on GitHub (Nov 17, 2023):

Ok, this is a weird situation I'm using Sitelutions for my DDNS and I had to change some value in Sitelutions website that gave me a new Host ID #. After that, I couldn't have DDNS-Updater to update DNSOMATIC with my hostname, when I changed the HOST/Identifier field on DNSOMATIC for the ID provided by Sitelutions... the IP was updated, but the container became unhealthy cuz DDNS-Updater can't resolve that #.

So since Sitelutions gives a ID Number instead of the domain to update the IP a new field would be needed for ID to update in DNSOMATIC and use domain and host for resolution... fi possible!

@goluftwaffe commented on GitHub (Nov 17, 2023): Ok, this is a weird situation I'm using Sitelutions for my DDNS and I had to change some value in Sitelutions website that gave me a new Host ID #. After that, I couldn't have DDNS-Updater to update DNSOMATIC with my hostname, when I changed the HOST/Identifier field on DNSOMATIC for the ID provided by Sitelutions... the IP was updated, but the container became unhealthy cuz DDNS-Updater can't resolve that #. So since Sitelutions gives a ID Number instead of the domain to update the IP a new field would be needed for ID to update in DNSOMATIC and use domain and host for resolution... fi possible!
Author
Owner

@qdm12 commented on GitHub (Jan 18, 2024):

Maybe irrelevant, but these net/http: HTTP/1.x transport connection broken: unexpected EOF errors are very strange 🤔 Any idea why these happen?

@qdm12 commented on GitHub (Jan 18, 2024): Maybe irrelevant, but these `net/http: HTTP/1.x transport connection broken: unexpected EOF` errors are very strange 🤔 Any idea why these happen?
Author
Owner

@qdm12 commented on GitHub (Jan 29, 2024):

The error

ERROR program is unhealthy: lookup IP addresses do not match: #newip# instead of #oldip# for #domain#

#newip# is the resolved ip, so it got successfully updated, but #oldip# is the ip obtained from updates.json as the latest ip, which is clearly not the latest.
Together with public ip fetching errors HTTP/1.x transport connection broken: unexpected EOF, this points me to think this should be resolved with the few recent fixes 7f0e858fa0, 74168ad4ab and bc54ba5aca
Please docker pull qmcgaw/ddns-updater and try the latest image to see if this is fixed.
I'll per-emptively close the issue assuming this is fixed, but feel free to comment if not and I'll re-open the issue.

So since Sitelutions gives a ID Number instead of the domain to update the IP a new field would be needed for ID to update in DNSOMATIC and use domain and host for resolution... fi possible!

Please create another issue 😉 Ideally with what field names you would want in your json config file too. Thanks!

@qdm12 commented on GitHub (Jan 29, 2024): The error > ERROR program is unhealthy: lookup IP addresses do not match: #newip# instead of #oldip# for #domain# `#newip#` is the resolved ip, so it got successfully updated, but `#oldip#` is the ip obtained from updates.json as the latest ip, which is clearly not the latest. Together with public ip fetching errors `HTTP/1.x transport connection broken: unexpected EOF`, this points me to think this should be resolved with the few recent fixes 7f0e858fa01ea181fe8898f3fb99631a06ed8ea3, 74168ad4ab4852e019d6d89a0c3bce3e440d3e2b and bc54ba5aca4723ac2f6654f3f7a082c67a307129 Please `docker pull qmcgaw/ddns-updater` and try the latest image to see if this is fixed. I'll per-emptively close the issue assuming this is fixed, but feel free to comment if not and I'll re-open the issue. > So since Sitelutions gives a ID Number instead of the domain to update the IP a new field would be needed for ID to update in DNSOMATIC and use domain and host for resolution... fi possible! Please create another issue 😉 Ideally with what field names you would want in your json config file too. Thanks!
Author
Owner

@goluftwaffe commented on GitHub (Jan 31, 2024):

Thank you for the answer, but I migrated my DNS to cloudfare et everything is working correctly with them... so I'm getting away from Sitelutions.

@goluftwaffe commented on GitHub (Jan 31, 2024): Thank you for the answer, but I migrated my DNS to cloudfare et everything is working correctly with them... so I'm getting away from Sitelutions.
Author
Owner

@HJebbour commented on GitHub (Dec 20, 2024):

I am having the same issue now, but with DuckDNS, I also have Cloudflare and it is working in the same container.

@HJebbour commented on GitHub (Dec 20, 2024): I am having the same issue now, but with DuckDNS, I also have Cloudflare and it is working in the same container.
Author
Owner

@qdm12 commented on GitHub (Dec 20, 2024):

The update might just take some time (up to the TTL usually 1hour) to propagate (longer than Cloudflare) to all dns nameservers

@qdm12 commented on GitHub (Dec 20, 2024): The update might just take some time (up to the TTL usually 1hour) to propagate (longer than Cloudflare) to all dns nameservers
Author
Owner

@HJebbour commented on GitHub (Dec 20, 2024):

It's been like this since yesterday, 10 hours passed since the IP changed. I did remove update.json file as @goluftwaffe suggested and it worked. But I don't know if it will be stuck again when the IP changes.

@HJebbour commented on GitHub (Dec 20, 2024): It's been like this since yesterday, 10 hours passed since the IP changed. I did remove update.json file as @goluftwaffe suggested and it worked. But I don't know if it will be stuck again when the IP changes.
Author
Owner

@qdm12 commented on GitHub (Dec 22, 2024):

Please create another issue with more information such as logs otherwise I can't help really. Locking this issue 😉

@qdm12 commented on GitHub (Dec 22, 2024): Please create another issue with more information such as logs otherwise I can't help really. Locking this issue 😉
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ddns-updater#327