Bug: dyn bad request sent error #236

Closed
opened 2025-11-20 04:21:49 -05:00 by saavagebueno · 6 comments
Owner

Originally created by @lylmiksistemas on GitHub (Dec 9, 2022).

TLDR: Describe your issue in a one liner here

update of ip with dyndns get bad request error

  1. Is this urgent: Yes
  2. DNS provider(s) you use: dyn
  3. Program version:

Running version latest built on 2022-12-07T10:12:54Z (commit 727f3ff)

  1. What are you using to run the container: docker-compose
  2. Extra information (optional)

Logs:

2022-12-10T02:51:46+01:00 INFO Found single setting to update record
2022-12-10T02:51:56+01:00 WARN Get "https://github.com": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
2022-12-10T02:51:56+01:00 INFO Reading history from database: domain getmyip.com host alonsocasa
2022-12-10T02:51:56+01:00 DEBUG configured to fetch IP: v4 or v6: false, v4: true, v6: false
2022-12-10T02:51:56+01:00 INFO [healthcheck server] listening on 127.0.0.1:9999
2022-12-10T02:51:56+01:00 INFO [backup] disabled
2022-12-10T02:51:56+01:00 INFO [http server] listening on :8000
2022/12/10 02:51:57 "GET http://10.0.3.3:8080/ HTTP/1.1" from 10.0.2.2:41028 - 200 1615B in 26.079µs
2022-12-10T02:51:59+01:00 DEBUG your public IP address are: v4 or v6: <nil>, v4: 83.63.30.34, v6: <nil>
2022-12-10T02:51:59+01:00 INFO IPv4 address of alonsocasa.getmyip.com is 80.25.5.67 and your IPv4 address is 83.63.30.34
2022-12-10T02:51:59+01:00 INFO Updating record [domain: getmyip.com | host: alonsocasa | provider: Dyn] to use 83.63.30.34
2022-12-10T02:51:59+01:00 DEBUG GET https://****:****@members.dyndns.org/v3/update?hostname=alonsocasa.getmyip.com | headers: User-Agent: DDNS-Updater quentin.mcgaw@gmail.com; Authorization: Basic bGF6YXJ1c2xvbmczMzcyOm1hcnRlMDc0Mw==
2022-12-10T02:52:00+01:00 DEBUG 200 OK | headers: Vary: Accept-Encoding; Accept-Ranges: none; Date: Sat, 10 Dec 2022 01:52:00 GMT; Server: Apache/2.4.18 (Ubuntu); Strict-Transport-Security: max-age=31536000; Content-Type: text/plain; X-User-Status: vip | body: badrequest
2022-12-10T02:52:00+01:00 ERROR bad request sent: 

Configuration file (remove your credentials!):

{
  "settings": [
    {
      "provider": "dyn",
      "domain": "getmyip.com",
      "host": "alonsocasa",
      "username": "****",
      "password": "****",
      "ip_version": "ipv4",
      "provider_ip": true
    }
  ]
}

Host OS: UnRaid Version: 6.11.4

Changed credentials with ****

Originally created by @lylmiksistemas on GitHub (Dec 9, 2022). <!-- HAVE A CHAT FIRST! https://github.com/qdm12/ddns-updater/discussions --> **TLDR**: *Describe your issue in a one liner here* update of ip with dyndns get bad request error 1. Is this urgent: Yes 2. DNS provider(s) you use: dyn 3. Program version: Running version latest built on 2022-12-07T10:12:54Z (commit 727f3ff) 4. What are you using to run the container: docker-compose 5. Extra information (optional) Logs: ``` 2022-12-10T02:51:46+01:00 INFO Found single setting to update record 2022-12-10T02:51:56+01:00 WARN Get "https://github.com": context deadline exceeded (Client.Timeout exceeded while awaiting headers) 2022-12-10T02:51:56+01:00 INFO Reading history from database: domain getmyip.com host alonsocasa 2022-12-10T02:51:56+01:00 DEBUG configured to fetch IP: v4 or v6: false, v4: true, v6: false 2022-12-10T02:51:56+01:00 INFO [healthcheck server] listening on 127.0.0.1:9999 2022-12-10T02:51:56+01:00 INFO [backup] disabled 2022-12-10T02:51:56+01:00 INFO [http server] listening on :8000 2022/12/10 02:51:57 "GET http://10.0.3.3:8080/ HTTP/1.1" from 10.0.2.2:41028 - 200 1615B in 26.079µs 2022-12-10T02:51:59+01:00 DEBUG your public IP address are: v4 or v6: <nil>, v4: 83.63.30.34, v6: <nil> 2022-12-10T02:51:59+01:00 INFO IPv4 address of alonsocasa.getmyip.com is 80.25.5.67 and your IPv4 address is 83.63.30.34 2022-12-10T02:51:59+01:00 INFO Updating record [domain: getmyip.com | host: alonsocasa | provider: Dyn] to use 83.63.30.34 2022-12-10T02:51:59+01:00 DEBUG GET https://****:****@members.dyndns.org/v3/update?hostname=alonsocasa.getmyip.com | headers: User-Agent: DDNS-Updater quentin.mcgaw@gmail.com; Authorization: Basic bGF6YXJ1c2xvbmczMzcyOm1hcnRlMDc0Mw== 2022-12-10T02:52:00+01:00 DEBUG 200 OK | headers: Vary: Accept-Encoding; Accept-Ranges: none; Date: Sat, 10 Dec 2022 01:52:00 GMT; Server: Apache/2.4.18 (Ubuntu); Strict-Transport-Security: max-age=31536000; Content-Type: text/plain; X-User-Status: vip | body: badrequest 2022-12-10T02:52:00+01:00 ERROR bad request sent: ``` Configuration file (**remove your credentials!**): ```json { "settings": [ { "provider": "dyn", "domain": "getmyip.com", "host": "alonsocasa", "username": "****", "password": "****", "ip_version": "ipv4", "provider_ip": true } ] } ``` Host OS: UnRaid Version: 6.11.4 Changed credentials with ****
saavagebueno added the Priority: 🚨 UrgentCategory: Provider update ♻️ labels 2025-11-20 04:21:49 -05:00
Author
Owner

@qdm12 commented on GitHub (Dec 14, 2022):

Are you using your client key? I re-checked dyndns documentation and the code seems to match.
However, it's "password" that is mentioned, whereas it should be the client key. I changed the documentation and code to accept the json key "client_key" (retro-compatible with "password")

@qdm12 commented on GitHub (Dec 14, 2022): Are you using your client key? I re-checked dyndns documentation and the code seems to match. However, it's "password" that is mentioned, whereas it should be the client key. I changed the documentation and code to accept the json key `"client_key"` (retro-compatible with `"password"`)
Author
Owner

@scrummie02 commented on GitHub (Dec 28, 2022):

Still getting the same error:

2022-12-28T16:18:12Z DEBUG GET https://xxxxx:xxxxxxxxxxxxxxxxxxxxxxxx@members.dyndns.org/v3/update?hostname=cloud.dainbentley.com | headers: User-Agent: DDNS-Updater quentin.mcgaw@gmail.com; Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2022-12-28T16:18:12Z DEBUG 200 OK | headers: Content-Type: text/plain; Accept-Ranges: none; X-User-Status: vip; Date: Wed, 28 Dec 2022 16:18:12 GMT; Server: Apache/2.4.18 (Ubuntu); Strict-Transport-Security: max-age=31536000; Vary: Accept-Encoding | body: badrequest
2022-12-28T16:18:12Z ERROR bad request sent

Config file:

{
  "settings": [
    {
      "provider": "dyn",
      "domain": "mydomaincom",
      "host": "cloud",
      "username": "xxxxx",
      "client_key": "xxxxxxxxxxxxxxxxxxxxxxx",
      "ip_version": "ipv4",
      "provider_ip": true
    }
  ]
}

Still getting bad request.

@scrummie02 commented on GitHub (Dec 28, 2022): Still getting the same error: ``` 2022-12-28T16:18:12Z DEBUG GET https://xxxxx:xxxxxxxxxxxxxxxxxxxxxxxx@members.dyndns.org/v3/update?hostname=cloud.dainbentley.com | headers: User-Agent: DDNS-Updater quentin.mcgaw@gmail.com; Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2022-12-28T16:18:12Z DEBUG 200 OK | headers: Content-Type: text/plain; Accept-Ranges: none; X-User-Status: vip; Date: Wed, 28 Dec 2022 16:18:12 GMT; Server: Apache/2.4.18 (Ubuntu); Strict-Transport-Security: max-age=31536000; Vary: Accept-Encoding | body: badrequest 2022-12-28T16:18:12Z ERROR bad request sent ``` Config file: ```json { "settings": [ { "provider": "dyn", "domain": "mydomaincom", "host": "cloud", "username": "xxxxx", "client_key": "xxxxxxxxxxxxxxxxxxxxxxx", "ip_version": "ipv4", "provider_ip": true } ] } ``` Still getting bad request.
Author
Owner

@stonytec commented on GitHub (Jan 11, 2023):

exactly the same here

@stonytec commented on GitHub (Jan 11, 2023): exactly the same here
Author
Owner

@qdm12 commented on GitHub (Jun 12, 2023):

Can you figure out how to do it with a browser?

Just try https://yourusername:yourkey@members.dyndns.org/v3/update?hostname=cloud.dainbentley.com

Replacing yourusername and yourkey (and your hostname value).
From their docs in their response body, there isn't much I can do to fix it 😢

@qdm12 commented on GitHub (Jun 12, 2023): Can you figure out how to do it with a browser? Just try https://yourusername:yourkey@members.dyndns.org/v3/update?hostname=cloud.dainbentley.com Replacing `yourusername` and `yourkey` (and your `hostname` value). From their docs in their response body, there isn't much I can do to fix it 😢
Author
Owner

@Sticklyman1936 commented on GitHub (Dec 10, 2023):

I've just tried this, and was getting the exact same error (bad request sent).

I have managed to get things working by setting provider_ip to false (which updates the request with a &myip=1.2.3.4, which then works correctly). It there a chance that dyn doesn't support determining the IP address automatically? They themselves suggest using checkip.dyndns.org to determine the IP. Also, if I manually make the request in the browser and don't include the myip variable, I get the same bad request sent. I think that the docs should likely be updated to set provider_ip to false, and the option should likely be ignore or should at least log a warning.

The other thing I had to update was the HTTP timeout because it was failing a lot of the time with the default 10 second timout - I guess the update service is a little slow - but that's a different issue and definitely not an issue with your tool! :)

Thanks so much for creating this tool! I'm happy to test things if required.

@Sticklyman1936 commented on GitHub (Dec 10, 2023): I've just tried this, and was getting the exact same error (`bad request sent`). I have managed to get things working by setting `provider_ip` to false (which updates the request with a `&myip=1.2.3.4`, which then works correctly). It there a chance that dyn doesn't support determining the IP address automatically? They themselves suggest using checkip.dyndns.org to determine the IP. Also, if I manually make the request in the browser and don't include the `myip` variable, I get the same `bad request sent`. I think that the docs should likely be updated to set `provider_ip` to false, and the option should likely be ignore or should at least log a warning. The other thing I had to update was the HTTP timeout because it was failing a lot of the time with the default 10 second timout - I guess the update service is a little slow - but that's a different issue and definitely not an issue with your tool! :) Thanks so much for creating this tool! I'm happy to test things if required.
Author
Owner

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

@Sticklyman1936 thanks for the good find! Their documentation is wrong then, stating about the myip parameter:

If this parameter is not specified, the best IP address the server can determine will be used (some proxy configurations pass the IP in a header, and that is detected by the server). If the IP address passed to the system is not properly formed, it will be ignored and the system’s best guess will be used.

c8ba7edcb7 fixes this issue, by removing the provider_ip setting and always injecting the myip query parameter.

The other thing I had to update was the HTTP timeout because it was failing a lot of the time with the default 10 second timout - I guess the update service is a little slow - but that's a different issue and definitely not an issue with your tool! :)

Their servers are awfully mega slow, even loading https://help.dyn.com/remote-access-api/perform-update/ takes forever, and it's a static page... I changed the delay to 20 seconds in 8096944623 😉

This should now be resolved, please open another issue if it still doesn't work 😉 Thanks!

@qdm12 commented on GitHub (Jan 19, 2024): @Sticklyman1936 thanks for the good find! [Their documentation](https://help.dyn.com/remote-access-api/perform-update/) is wrong then, stating about the `myip` parameter: > If this parameter is not specified, the best IP address the server can determine will be used (some proxy configurations pass the IP in a header, and that is detected by the server). If the IP address passed to the system is not properly formed, it will be ignored and the system’s best guess will be used. c8ba7edcb733f31ed1fff32288a5c03dfafaf638 fixes this issue, by removing the `provider_ip` setting and always injecting the `myip` query parameter. > The other thing I had to update was the HTTP timeout because it was failing a lot of the time with the default 10 second timout - I guess the update service is a little slow - but that's a different issue and definitely not an issue with your tool! :) Their servers are awfully mega slow, even loading https://help.dyn.com/remote-access-api/perform-update/ takes forever, and it's a static page... I changed the delay to 20 seconds in 809694462326a46d1d3f15103902b2e49cb2c4a9 😉 This should now be resolved, please open another issue if it still doesn't work 😉 Thanks!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ddns-updater#236