Again: Update pihole FTL Error

Had the same issue a month ago, but the solution didn´t work anymore.

old Topic here

Expected Behaviour:

Try to update the pihole system with sudo pihole -up

  • Operating System Raspberry Pi OS (Debian 12)
  • Raspberry Pi 3 Model B Rev 1.2

Actual Behaviour:

can´t update, always the following error:

sudo pihole -up
[✓] Building dependency package pihole-meta.deb
[✓] Installing Pi-hole dependency package

[i] Checking for updates...
[i] Pi-hole Core: up to date
[i] Web Interface: up to date
[i] FTL: Something has gone wrong, cannot reach download server

Debug Token:

https://tricorder.pi-hole.net/vXrpBaBS/

Then ping/traceroute/nslookup/dig/etc. the server and see what the output says ?!

Just like on the previous topic, this is probably a temporary network issue.

This is unrelated to Pi-hole. It is a connection issue between your home and Github servers.

There was no solution.

Last time, the issue fixed itself when darkexplosiveqwx suggested to execute a few tests.

Those commands were intended only to display some error messages that would have helped us identify the problem, but no errors occurred because the issue resolved itself.

Let's try again.

Please post the output of these commands (executed from Pi-hole machine):

curl -v https://api.github.com/repos/pi-hole/FTL/releases/latest
dig api.github.com
dig api.github.com @1.1.1.1

Here are the outputs, the error is not temporary, I tried it for weeks.

*   Trying 140.82.121.5...
* TCP_NODELAY set
* Connected to api.github.com (140.82.121.5) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=*.github.com
*  start date: Jul  2 00:00:00 2026 GMT
*  expire date: Sep 29 23:59:59 2026 GMT
*  subjectAltName: host "api.github.com" matched cert's "*.github.com"
*  issuer: C=GB; O=Sectigo Limited; CN=Sectigo Public Server Authentication CA DV E36
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x1499960)
> GET /repos/pi-hole/FTL/releases/latest HTTP/2
> Host: api.github.com
> User-Agent: curl/7.64.0
> Accept: */*
> 
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 403 
< date: Tue, 28 Jul 2026 14:48:25 GMT
< server: Varnish
< strict-transport-security: max-age=31536000; includeSubdomains; preload
< x-content-type-options: nosniff
< x-frame-options: deny
< x-xss-protection: 1; mode=block
< content-security-policy: default-src 'none'; style-src 'unsafe-inline'
< access-control-allow-origin: *
< access-control-expose-headers: ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-RateLimit-Used, X-RateLimit-Resource, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
< content-type: application/json; charset=utf-8
< referrer-policy: origin-when-cross-origin, strict-origin-when-cross-origin
< x-github-media-type: github.v3; format=json
< x-ratelimit-limit: 60
< x-ratelimit-remaining: 0
< x-ratelimit-used: 60
< x-ratelimit-resource: core
< x-ratelimit-reset: 1785251501
< content-length: 279
< x-github-request-id: EB0D:28C02:8806A7:80D59C:6A68C139
< 
{"message":"API rate limit exceeded for 84.58.165.171. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)","documentation_url":"https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting"}
* Connection #0 to host api.github.com left intact
; <<>> DiG 9.11.5-P4-5.1+deb10u11-Raspbian <<>> api.github.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13136
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; OPT=15: 00 03 ("..")
;; QUESTION SECTION:
;api.github.com.                        IN      A

;; ANSWER SECTION:
api.github.com.         0       IN      A       140.82.121.5

;; Query time: 4 msec
;; SERVER: 192.168.0.44#53(192.168.0.44)
;; WHEN: Di Jul 28 15:49:31 BST 2026
;; MSG SIZE  rcvd: 65
; <<>> DiG 9.11.5-P4-5.1+deb10u11-Raspbian <<>> api.github.com @1.1.1.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63251
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;api.github.com.                        IN      A

;; ANSWER SECTION:
api.github.com.         41      IN      A       140.82.121.5

;; Query time: 14 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Di Jul 28 15:50:06 BST 2026
;; MSG SIZE  rcvd: 59

This is not a Pi-hole issue.

The error message shows the issue:

It means your IP exceeded the allowed number of requests to the Github API.

Something (an app or script) is constantly sending requests to Github API, originating from the IP used by your Internet connection. As a result, Github is temporarily blocking your access to the API.

You need to wait.

Alternatively you can find and disable the app/script that is constantly querying Github API.
Or change the app/script to use Authenticated access:

(But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)
documentation_url":"https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting"

Thank you! At first I try to uninstall the homeassistant plugin.