gluetun
gluetun copied to clipboard
Bug: protonvpn servers update broken? 400 Bad Request
Is this urgent?
Yes
Host OS
Unraid
CPU arch
x86_64
VPN service provider
ProtonVPN
What are you using to run the container
docker-compose
What is the version of Gluetun
Running version latest built on 2025-01-22T08:30:14.628Z (commit 13532c8)
What's the problem π€
Tried to run:
docker run --rm -v /mnt/cache/appdata/gluetun:/gluetun ghcr.io/qdm12/gluetun update -enduser -providers protonvpn
But get a Bad Request Error
Share your logs (at least 10 lines)
2025-06-04T22:31:32Z INFO merging by most recent 20776 hardcoded servers and 20776 servers read from /gluetun/servers.json
2025-06-04T22:31:33Z INFO updating Protonvpn servers...
2025-06-04T22:31:33Z ERROR updating server information: getting servers: HTTP status code not OK: 400 400 Bad Request
2025-06-04T22:31:33Z INFO Shutdown successful
Share your configuration
gluetun:
container_name: gluetun
image: ghcr.io/qdm12/gluetun:latest
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://static-00.iconduck.com/assets.00/vpn-icon-1863x2048-b1dwlnad.png'
net.unraid.docker.webui: ''
net.unraid.docker.shell: ''
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
volumes:
- /mnt/user/appdata/gluetun:/gluetun
environment:
- TZ=${TZ}
- VPN_SERVICE_PROVIDER=protonvpn
- VPN_TYPE=wireguard
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY}
- PORT_FORWARD_ONLY=on
- VPN_PORT_FORWARDING=on
- SERVER_COUNTRIES=Belgium
@qdm12 is more or less the only maintainer of this project and works on it in his free time. Please:
- do not ask for updates, be patient
- :+1: the issue to show your support instead of commenting @qdm12 usually checks issues at least once a week, if this is a new urgent bug, revert to an older tagged container image
I'm faced the same issue
Same issue here also
How I "fixed it":
- Stop the container
- Remove
servers.jsonfile - Start the container again
I don't think that's a fix π I think that makes it simply fall back to its default internal servers.json from the time the container was built.
same here
i'm dealing with this same issue and it's preventing me getting my service up and running on my server.
Same issue here
docker run --rm -v /mnt/user/appdata/gluetun:/gluetun qmcgaw/gluetun update -enduser -providers protonvpn 2025-08-04T22:58:48Z INFO merging by most recent 20776 hardcoded servers and 20776 servers read from /gluetun/servers.json 2025-08-04T22:58:48Z INFO updating Protonvpn servers... 2025-08-04T22:58:48Z ERROR updating server information: getting servers: HTTP status code not OK: 400 400 Bad Request 2025-08-04T22:58:48Z INFO Shutdown successful
Additionally, the "automatic" update period seems to just hang and never update servers.json
This just happened to me as well. In my case, the Wireguard configuration had expired. Created a new config (didn't notice the "extend" button in Proton, that might work too) and updated the key for Gluetun and all is well again.
Something to check.
This just happened to me as well. In my case, the Wireguard configuration had expired. Created a new config (didn't notice the "extend" button in Proton, that might work too) and updated the key for Gluetun and all is well again.
Something to check.
Interesting. Will check this tomorrow, but the VPN is able to connect/reconnect fine, so I donβt think thatβs the issue for me.
Are you sure the server list is updating correctly? I ask as I found out that Proton have retired their public API, which most things were using to pull this data.
@RChesterton Maybe it isn't the solution here, but I thought it might be worth checking.
Just re-ran the update command and still get the 400 error, so I guess my problem was the token and this one still exists. Sorry for the wild goose chase.
No update regarding this ?
Has anyone found a workaround to this problem?
Has anyone found a workaround to this problem?
Pretty sure there isnβt one until/unless Proton make an API available.
you can follow some discussions there https://github.com/qdm12/gluetun/pull/2864
Has anyone found a workaround to this problem?
I have simply switched to using VPN_TYPE=wireguard and VPN_SERVICE_PROVIDER=custom using ProtonVPN's wireguard configurations that can be obtained from their download page, which has been working flawlessly for me.
It looks like for me this was a case of the ProtonVPN wireguard config expiring. Extending it from the download page seems to have fixed it.
Has anyone found a workaround to this problem?
I have simply switched to using
VPN_TYPE=wireguardandVPN_SERVICE_PROVIDER=customusing ProtonVPN's wireguard configurations that can be obtained from their download page, which has been working flawlessly for me.
I tried this using a server that was newly added by Proton, but got an error saying that servers should be from one of the perfect providers.
Is this still an issue because I don't see any failures in my logs.
2025-09-11T01:07:13-05:00 INFO [dns] downloading hostnames and IP block lists 2025-09-11T01:07:13-05:00 INFO [updater] updating Protonvpn servers... 2025-09-11T01:07:14-05:00 INFO [dns] stopping 2025-09-11T01:07:14-05:00 INFO [dns] using plaintext DNS at address 1.1.1.1 2025-09-11T01:07:14-05:00 INFO [dns] starting 2025-09-11T01:07:14-05:00 INFO [dns] downloading hostnames and IP block lists 2025-09-11T01:07:15-05:00 INFO [dns] DNS server listening on 0.0.0.0:53
Is this still an issue because I don't see any failures in my logs.
2025-09-11T01:07:13-05:00 INFO [dns] downloading hostnames and IP block lists 2025-09-11T01:07:13-05:00 INFO [updater] updating Protonvpn servers... 2025-09-11T01:07:14-05:00 INFO [dns] stopping 2025-09-11T01:07:14-05:00 INFO [dns] using plaintext DNS at address 1.1.1.1 2025-09-11T01:07:14-05:00 INFO [dns] starting 2025-09-11T01:07:14-05:00 INFO [dns] downloading hostnames and IP block lists 2025-09-11T01:07:15-05:00 INFO [dns] DNS server listening on 0.0.0.0:53
I believe so.. still getting the same as this:
https://github.com/qdm12/gluetun/issues/2820#issuecomment-3152654796
This just happened to me as well. In my case, the Wireguard configuration had expired. Created a new config (didn't notice the "extend" button in Proton, that might work too) and updated the key for Gluetun and all is well again.
Something to check.
This fixed the issue I was seeing, thanks!
Hey @qdm12 , there is an updated list of ProtonVIP IPs at https://github.com/tn3w/ProtonVPN-IPs. I am not a developer, but maybe there is a way to import this into gluetun while we wait for the Proton team to allow the API connection again?
Proposed Workaround
-
Open DevTools to ensure browser network traffic is captured.
-
Go to ProtonVPN web portal to create a new Wireguard configuration.
-
Check the network tab for the request that pulled the server list. Either copy the response JSON straight to a file, or use the "Copy as curl" options to repeat the request in the shell with
curl. We assume the filename to beprotonvpn-servers.json. -
Process the file with
jq:jq ' [.LogicalServers[] as $ls | ( $ls.Servers[] | { vpn: "wireguard", country: ({"af":"Afghanistan","ax":"Aland Islands","al":"Albania","dz":"Algeria","as":"American Samoa","ad":"Andorra","ao":"Angola","ai":"Anguilla","aq":"Antarctica","ag":"Antigua and Barbuda","ar":"Argentina","am":"Armenia","aw":"Aruba","au":"Australia","at":"Austria","az":"Azerbaijan","bs":"Bahamas","bh":"Bahrain","bd":"Bangladesh","bb":"Barbados","by":"Belarus","be":"Belgium","bz":"Belize","bj":"Benin","bm":"Bermuda","bt":"Bhutan","bo":"Bolivia","bq":"Bonaire","ba":"Bosnia and Herzegovina","bw":"Botswana","bv":"Bouvet Island","br":"Brazil","io":"British Indian Ocean Territory","vg":"British Virgin Islands","bn":"Brunei Darussalam","bg":"Bulgaria","bf":"Burkina Faso","bi":"Burundi","kh":"Cambodia","cm":"Cameroon","ca":"Canada","cv":"Cape Verde","ky":"Cayman Islands","cf":"Central African Republic","td":"Chad","cl":"Chile","cn":"China","cx":"Christmas Island","cc":"Cocos Islands","co":"Colombia","km":"Comoros","cg":"Congo","ck":"Cook Islands","cr":"Costa Rica","ci":"Cote d''Ivoire","hr":"Croatia","cu":"Cuba","cw":"Curacao","cy":"Cyprus","cz":"Czech Republic","cd":"Democratic Republic of the Congo","dk":"Denmark","dj":"Djibouti","dm":"Dominica","do":"Dominican Republic","ec":"Ecuador","eg":"Egypt","sv":"El Salvador","gq":"Equatorial Guinea","er":"Eritrea","ee":"Estonia","et":"Ethiopia","fk":"Falkland Islands","fo":"Faroe Islands","fj":"Fiji","fi":"Finland","fr":"France","gf":"French Guiana","pf":"French Polynesia","tf":"French Southern Territories","ga":"Gabon","gm":"Gambia","ge":"Georgia","de":"Germany","gh":"Ghana","gi":"Gibraltar","gr":"Greece","gl":"Greenland","gd":"Grenada","gp":"Guadeloupe","gu":"Guam","gt":"Guatemala","gg":"Guernsey","gw":"Guinea-Bissau","gn":"Guinea","gy":"Guyana","ht":"Haiti","hm":"Heard Island and McDonald Islands","hn":"Honduras","hk":"Hong Kong","hu":"Hungary","is":"Iceland","in":"India","id":"Indonesia","ir":"Iran","iq":"Iraq","ie":"Ireland","im":"Isle of Man","il":"Israel","it":"Italy","jm":"Jamaica","jp":"Japan","je":"Jersey","jo":"Jordan","kz":"Kazakhstan","ke":"Kenya","ki":"Kiribati","kr":"Korea","kw":"Kuwait","kg":"Kyrgyzstan","la":"Lao People''s Democratic Republic","lv":"Latvia","lb":"Lebanon","ls":"Lesotho","lr":"Liberia","ly":"Libya","li":"Liechtenstein","lt":"Lithuania","lu":"Luxembourg","mo":"Macao","mk":"Macedonia","mg":"Madagascar","mw":"Malawi","my":"Malaysia","mys":"Kuala Lumpur","mv":"Maldives","ml":"Mali","mt":"Malta","mh":"Marshall Islands","mq":"Martinique","mr":"Mauritania","mu":"Mauritius","yt":"Mayotte","mx":"Mexico","fm":"Micronesia","md":"Moldova","mc":"Monaco","mn":"Mongolia","me":"Montenegro","ms":"Montserrat","ma":"Morocco","mz":"Mozambique","mm":"Myanmar","na":"Namibia","nr":"Nauru","np":"Nepal","nl":"Netherlands","nc":"New Caledonia","nz":"New Zealand","ni":"Nicaragua","ne":"Niger","ng":"Nigeria","nu":"Niue","nf":"Norfolk Island","mp":"Northern Mariana Islands","no":"Norway","om":"Oman","pk":"Pakistan","pw":"Palau","ps":"Palestine, State of","pa":"Panama","pg":"Papua New Guinea","py":"Paraguay","pe":"Peru","ph":"Philippines","pn":"Pitcairn","pl":"Poland","pt":"Portugal","pr":"Puerto Rico","qa":"Qatar","re":"Reunion","ro":"Romania","ru":"Russian Federation","rw":"Rwanda","bl":"Saint Barthelemy","sh":"Saint Helena","kn":"Saint Kitts and Nevis","lc":"Saint Lucia","mf":"Saint Martin","pm":"Saint Pierre and Miquelon","vc":"Saint Vincent and the Grenadines","ws":"Samoa","sm":"San Marino","st":"Sao Tome and Principe","sa":"Saudi Arabia","sn":"Senegal","rs":"Serbia","sc":"Seychelles","sl":"Sierra Leone","sg":"Singapore","sx":"Sint Maarten","sk":"Slovakia","si":"Slovenia","sb":"Solomon Islands","so":"Somalia","za":"South Africa","gs":"South Georgia and the South Sandwich Islands","ss":"South Sudan","es":"Spain","lk":"Sri Lanka","sd":"Sudan","sr":"Suriname","sj":"Svalbard and Jan Mayen","sz":"Swaziland","se":"Sweden","ch":"Switzerland","sy":"Syrian Arab Republic","tw":"Taiwan","tj":"Tajikistan","tz":"Tanzania","th":"Thailand","tl":"Timor-Leste","tg":"Togo","tk":"Tokelau","to":"Tonga","tt":"Trinidad and Tobago","tn":"Tunisia","tr":"Turkey","tm":"Turkmenistan","tc":"Turks and Caicos Islands","tv":"Tuvalu","ug":"Uganda","ua":"Ukraine","ae":"United Arab Emirates","gb":"United Kingdom","uk":"United Kingdom","um":"United States Minor Outlying Islands","us":"United States","uy":"Uruguay","vi":"US Virgin Islands","uz":"Uzbekistan","vu":"Vanuatu","va":"Vatican City State","ve":"Venezuela","vn":"Vietnam","wf":"Wallis and Futuna","eh":"Western Sahara","ye":"Yemen","zm":"Zambia","zw":"Zimbabwe"}[($ls.ExitCountry|ascii_downcase)]), city: $ls.City, server_name: $ls.Name, hostname: .Domain, wgpubkey: .X25519PublicKey, free: 0==$ls.Tier, port_forward: ([4,5,6,7,12,13,14,15] | contains([$ls.Features])), stream: (8<=$ls.Features), ips: [.EntryIP] } )] ' protonvpn-servers.json > new-servers.json -
Merge the result into your gluetun
servers.json, and don't forget to bump thetimestamp.
Is this still an issue because I don't see any failures in my logs.
Yes, this is still an issue. I tried extending my config in Proton and adding HEALTH_RESTART_VPN=off in my compose file. Gluetun is borked and will not let me make any connections.
Proposed Workaround
- Open DevTools to ensure browser network traffic is captured.
- Go to ProtonVPN web portal to create a new Wireguard configuration.
- Check the network tab for the request that pulled the server list. Either copy the response JSON straight to a file, or use the "Copy as curl" options to repeat the request in the shell with
curl. We assume the filename to beprotonvpn-servers.json.- Process the file with
jq: jq ' [.LogicalServers[] as $ls | ( $ls.Servers[] | { vpn: "wireguard", country: ({"af":"Afghanistan","ax":"Aland Islands","al":"Albania","dz":"Algeria","as":"American Samoa","ad":"Andorra","ao":"Angola","ai":"Anguilla","aq":"Antarctica","ag":"Antigua and Barbuda","ar":"Argentina","am":"Armenia","aw":"Aruba","au":"Australia","at":"Austria","az":"Azerbaijan","bs":"Bahamas","bh":"Bahrain","bd":"Bangladesh","bb":"Barbados","by":"Belarus","be":"Belgium","bz":"Belize","bj":"Benin","bm":"Bermuda","bt":"Bhutan","bo":"Bolivia","bq":"Bonaire","ba":"Bosnia and Herzegovina","bw":"Botswana","bv":"Bouvet Island","br":"Brazil","io":"British Indian Ocean Territory","vg":"British Virgin Islands","bn":"Brunei Darussalam","bg":"Bulgaria","bf":"Burkina Faso","bi":"Burundi","kh":"Cambodia","cm":"Cameroon","ca":"Canada","cv":"Cape Verde","ky":"Cayman Islands","cf":"Central African Republic","td":"Chad","cl":"Chile","cn":"China","cx":"Christmas Island","cc":"Cocos Islands","co":"Colombia","km":"Comoros","cg":"Congo","ck":"Cook Islands","cr":"Costa Rica","ci":"Cote d''Ivoire","hr":"Croatia","cu":"Cuba","cw":"Curacao","cy":"Cyprus","cz":"Czech Republic","cd":"Democratic Republic of the Congo","dk":"Denmark","dj":"Djibouti","dm":"Dominica","do":"Dominican Republic","ec":"Ecuador","eg":"Egypt","sv":"El Salvador","gq":"Equatorial Guinea","er":"Eritrea","ee":"Estonia","et":"Ethiopia","fk":"Falkland Islands","fo":"Faroe Islands","fj":"Fiji","fi":"Finland","fr":"France","gf":"French Guiana","pf":"French Polynesia","tf":"French Southern Territories","ga":"Gabon","gm":"Gambia","ge":"Georgia","de":"Germany","gh":"Ghana","gi":"Gibraltar","gr":"Greece","gl":"Greenland","gd":"Grenada","gp":"Guadeloupe","gu":"Guam","gt":"Guatemala","gg":"Guernsey","gw":"Guinea-Bissau","gn":"Guinea","gy":"Guyana","ht":"Haiti","hm":"Heard Island and McDonald Islands","hn":"Honduras","hk":"Hong Kong","hu":"Hungary","is":"Iceland","in":"India","id":"Indonesia","ir":"Iran","iq":"Iraq","ie":"Ireland","im":"Isle of Man","il":"Israel","it":"Italy","jm":"Jamaica","jp":"Japan","je":"Jersey","jo":"Jordan","kz":"Kazakhstan","ke":"Kenya","ki":"Kiribati","kr":"Korea","kw":"Kuwait","kg":"Kyrgyzstan","la":"Lao People''s Democratic Republic","lv":"Latvia","lb":"Lebanon","ls":"Lesotho","lr":"Liberia","ly":"Libya","li":"Liechtenstein","lt":"Lithuania","lu":"Luxembourg","mo":"Macao","mk":"Macedonia","mg":"Madagascar","mw":"Malawi","my":"Malaysia","mys":"Kuala Lumpur","mv":"Maldives","ml":"Mali","mt":"Malta","mh":"Marshall Islands","mq":"Martinique","mr":"Mauritania","mu":"Mauritius","yt":"Mayotte","mx":"Mexico","fm":"Micronesia","md":"Moldova","mc":"Monaco","mn":"Mongolia","me":"Montenegro","ms":"Montserrat","ma":"Morocco","mz":"Mozambique","mm":"Myanmar","na":"Namibia","nr":"Nauru","np":"Nepal","nl":"Netherlands","nc":"New Caledonia","nz":"New Zealand","ni":"Nicaragua","ne":"Niger","ng":"Nigeria","nu":"Niue","nf":"Norfolk Island","mp":"Northern Mariana Islands","no":"Norway","om":"Oman","pk":"Pakistan","pw":"Palau","ps":"Palestine, State of","pa":"Panama","pg":"Papua New Guinea","py":"Paraguay","pe":"Peru","ph":"Philippines","pn":"Pitcairn","pl":"Poland","pt":"Portugal","pr":"Puerto Rico","qa":"Qatar","re":"Reunion","ro":"Romania","ru":"Russian Federation","rw":"Rwanda","bl":"Saint Barthelemy","sh":"Saint Helena","kn":"Saint Kitts and Nevis","lc":"Saint Lucia","mf":"Saint Martin","pm":"Saint Pierre and Miquelon","vc":"Saint Vincent and the Grenadines","ws":"Samoa","sm":"San Marino","st":"Sao Tome and Principe","sa":"Saudi Arabia","sn":"Senegal","rs":"Serbia","sc":"Seychelles","sl":"Sierra Leone","sg":"Singapore","sx":"Sint Maarten","sk":"Slovakia","si":"Slovenia","sb":"Solomon Islands","so":"Somalia","za":"South Africa","gs":"South Georgia and the South Sandwich Islands","ss":"South Sudan","es":"Spain","lk":"Sri Lanka","sd":"Sudan","sr":"Suriname","sj":"Svalbard and Jan Mayen","sz":"Swaziland","se":"Sweden","ch":"Switzerland","sy":"Syrian Arab Republic","tw":"Taiwan","tj":"Tajikistan","tz":"Tanzania","th":"Thailand","tl":"Timor-Leste","tg":"Togo","tk":"Tokelau","to":"Tonga","tt":"Trinidad and Tobago","tn":"Tunisia","tr":"Turkey","tm":"Turkmenistan","tc":"Turks and Caicos Islands","tv":"Tuvalu","ug":"Uganda","ua":"Ukraine","ae":"United Arab Emirates","gb":"United Kingdom","uk":"United Kingdom","um":"United States Minor Outlying Islands","us":"United States","uy":"Uruguay","vi":"US Virgin Islands","uz":"Uzbekistan","vu":"Vanuatu","va":"Vatican City State","ve":"Venezuela","vn":"Vietnam","wf":"Wallis and Futuna","eh":"Western Sahara","ye":"Yemen","zm":"Zambia","zw":"Zimbabwe"}[($ls.ExitCountry|ascii_downcase)]), city: $ls.City, server_name: $ls.Name, hostname: .Domain, wgpubkey: .X25519PublicKey, free: 0==$ls.Tier, port_forward: ([4,5,6,7,12,13,14,15] | contains([$ls.Features])), stream: (8<=$ls.Features), ips: [.EntryIP] } )] ' protonvpn-servers.json > new-servers.json- Merge the result into your gluetun
servers.json, and don't forget to bump thetimestamp.
Thank you. I was able to get a list of updated wireguard servers and sort it with jq. I have three follow-ups:
- How do I merge this with gluetun's servers.json? Is it a simple copy and paste or something else involved?
- Does bumping the "timestamp" mean increasing the counter by 1? My current timestamp value is 1722515320. Do I just make it 1722515321?
- Can this be used also to get a list of openvpn server entries? If so could you please explain how to pull them?
@1337SereniTyx3
- Copy & paste will do fine. I removed all providers which I don't use from the file first. Then I just replaced the entire servers section of protonvpn.
- Increasing by 1 should do fine, but it's a UNIX timestamp (in seconds) if you want to be precise. I used
1761381398. Theservers.jsonis also hardcoded into gluetun. When it finds entries with a more recenttimestampin the file on disk, it will replace the hardcoded values with the newer ones. This will show in the log with a distinct message on startup. - I've been wondering about the openvpn servers myself, but I haven't looked into that at all yet. I assume the process could be similar. The API route that retrieves the VPN servers is
https://account.proton.me/api/vpn/logicals, and this response is used for both wireguard and openvpn config generation. So it probably boils down to writing the correctjqtransform, but it looks to me like you'll ultimately be using the same servers regardless of the protocol.
Thanks for confirming :)
@qdm12 is there any plans to change how the Proton VPN server list is updated?
Try image with tag :pr-2878. It has updated servers data. It will get merged in the master branch (:latest image) in the coming few days.
Seems to have an issue, @qdm12. If I move to :latest the container fires up.
Running version pr-2878 built on 2025-10-29T12:45:50.839Z (commit ca101d3) π§ Need help? β Discussion? https://github.com/qdm12/gluetun/discussions/new/choose π Bug? β¨ New feature? https://github.com/qdm12/gluetun/issues/new/choose π» Email? [email protected] π° Help me? https://www.paypal.me/qmcgaw https://github.com/sponsors/qdm12 2025-10-29T10:28:31-05:00 INFO [routing] default route found: interface eth0, gateway 172.20.0.1, assigned IP 172.20.0.2 and family v4 2025-10-29T10:28:31-05:00 INFO [routing] local ethernet link found: eth0 2025-10-29T10:28:31-05:00 INFO [routing] local ipnet found: 172.20.0.0/16 2025-10-29T10:28:31-05:00 INFO [firewall] enabling... 2025-10-29T10:28:31-05:00 INFO [firewall] enabled successfully 2025-10-29T10:28:32-05:00 INFO [storage] merging by most recent 20793 hardcoded servers and 20793 servers read from /gluetun/servers.json
panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x7825ee]
goroutine 13 [running]: github.com/qdm12/gluetun/internal/configuration/settings.Updater.Validate({0xc000011618, {0xcb7ffd, 0xa}, 0x3fe999999999999a, {0xc000257d30, 0x1, 0x1}, 0x0, 0x0}) github.com/qdm12/gluetun/internal/configuration/settings/updater.go:62 +0x28e github.com/qdm12/gluetun/internal/configuration/settings.(*Settings).Validate(0xc000224e08, {0x158b440, 0xc002e7bb00}, 0x0, {0x7604346b25e8, 0xc0001dac80}) github.com/qdm12/gluetun/internal/configuration/settings/settings.go:63 +0xa90 main._main({0x15927f0, 0xc000164e10}, {{0x1586dc0, 0x7}, {0x1586dc8, 0x7}, {0x158b1e0, 0x18}}, {0xc0000320b0, 0x1, ...}, ...) ./main.go:250 +0xfeb main.main.func2() ./main.go:98 +0x125 created by main.main in goroutine 1 ./main.go:97 +0x5e5
Seems to have an issue, @qdm12. If I move to :latest the container fires up.
Running version pr-2878 built on 2025-10-29T12:45:50.839Z (commit ca101d3) π§ Need help? β Discussion? https://github.com/qdm12/gluetun/discussions/new/choose π Bug? β¨ New feature? https://github.com/qdm12/gluetun/issues/new/choose π» Email? [email protected] π° Help me? https://www.paypal.me/qmcgaw https://github.com/sponsors/qdm12 2025-10-29T10:28:31-05:00 INFO [routing] default route found: interface eth0, gateway 172.20.0.1, assigned IP 172.20.0.2 and family v4 2025-10-29T10:28:31-05:00 INFO [routing] local ethernet link found: eth0 2025-10-29T10:28:31-05:00 INFO [routing] local ipnet found: 172.20.0.0/16 2025-10-29T10:28:31-05:00 INFO [firewall] enabling... 2025-10-29T10:28:31-05:00 INFO [firewall] enabled successfully 2025-10-29T10:28:32-05:00 INFO [storage] merging by most recent 20793 hardcoded servers and 20793 servers read from /gluetun/servers.json
panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x7825ee]
goroutine 13 [running]: github.com/qdm12/gluetun/internal/configuration/settings.Updater.Validate({0xc000011618, {0xcb7ffd, 0xa}, 0x3fe999999999999a, {0xc000257d30, 0x1, 0x1}, 0x0, 0x0}) github.com/qdm12/gluetun/internal/configuration/settings/updater.go:62 +0x28e github.com/qdm12/gluetun/internal/configuration/settings.(*Settings).Validate(0xc000224e08, {0x158b440, 0xc002e7bb00}, 0x0, {0x7604346b25e8, 0xc0001dac80}) github.com/qdm12/gluetun/internal/configuration/settings/settings.go:63 +0xa90 main._main({0x15927f0, 0xc000164e10}, {{0x1586dc0, 0x7}, {0x1586dc8, 0x7}, {0x158b1e0, 0x18}}, {0xc0000320b0, 0x1, ...}, ...) ./main.go:250 +0xfeb main.main.func2() ./main.go:98 +0x125 created by main.main in goroutine 1 ./main.go:97 +0x5e5
I'm getting the same on :pr-2878.