Apps from Guardian-repo are not updating

Expected behavior:

FDroid periodically checks for updates with all installed repositories for installed apps, offers user to update, and installs new versions when user hits ‘Update’ button

Actual behavior:
Apps that were installed via the Guardian repository are not updating anymore. Notifycation is there, but downloading fails. (using TOR as example, but it is for all apps installed from Guardian repo.)

Errors are:
“Download failed!
Failed to connect to /162.247.75.177:443”
or:
”Download failed!
io.ktor.client.plugins.ClientRequestException: Client request(GET https://gitlab.com/guardianproject/fdroid-repo/-/raw/master/fdroid/repo/tor-browser-android-aarch64-14.5.8.apk) invalid 404 . (html page of the 404)
The exact error depends or the mirror used. I tried all mirrors that come installed with the Guardian project repo installation.

Workaround:
A simple
wget ``https://gitlab.com/guardianproject/fdroidrepo/tor-browser-android-aarch64-14.5.8.apk
works fine (also for other packages).

wget ``https://gitlab.com/guardianproject/fdroid-repo/-/raw/master/fdroid/repo/tor-browser-android-aarch64-14.5.8.apk
gives a 403

Transfer the downloaded .apk to phone, open with package installer, and install.

Device ? Android version? F-Droid Client version? Using a VPN or Tor?

Devices:
Pixel 6pro, GrapheneOS build 2025091000, F-Droid 1.23.1, no VPN or TOR. (same source IP as wget download test from desktop)
Pixel 8a, GrapheneOS build 2025100901, F-Droid 1.23.1, VPN mullvad/wireguard.

The Gitlab mirror seems to host only the index (based on commits titles Commits · 745ce2a278149a6709f13d2f5f46f50a14addde0 · guardianproject / fdroid-repo · GitLab )

In F-Droid Client you can disable this one and it should use the others

There are 7 ‘Official mirrors’. I tested them all, by enabling one at a time, refresh repo’s, attempt to update apps. All give similar faults.

Better contact the Guardian admins then :person_shrugging:

E-mailed them. Tnx!

1 Like

testing mirrors:

D o.f.d.HttpDownloaderV2: [AsyncTask #1        ] Downloading /Signal-Android-website-prod-universal-release-7.60.3.apk (is resumable: true)
D o.f.d.HttpManager: [AsyncTask #1        ] GET https://s3.dualstack.us-east-1.amazonaws.com/guardianproject/fdroid/repo/Signal-Android-website-prod-universal-release-7.60.3.apk
I o.f.d.MirrorChooserImpl: [AsyncTask #1        ] Last mirror, rethrowing... (404 Not Found)
E DownloaderService: CONNECTION_FAILED: io.ktor.client.plugins.ClientRequestException: Client request(GET https://s3.dualstack.us-east-1.amazonaws.com/guardianproject/fdroid/repo/Signal-Android-website-prod-universal-release-7.60.3.apk) invalid: 404 Not Found. Text: "<?xml version="1.0" encoding="UTF-8"?>
E DownloaderService: <Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message><Key>fdroid/repo/Signal-Android-website-prod-universal-release-7.60.3.apk</Key><RequestId>5SN69M2TPYXC5X2G</RequestId><HostId>SPM6TTDdr6fm3RhCn+KSjO31icYCQ77OQuwT7qJqVRSbfMkkp4Csc6PQ70V4fkAPkPfM6RzkIFc=</HostId></Error>"

next

D o.f.d.HttpDownloaderV2: [AsyncTask #1        ] Downloading /Signal-Android-website-prod-universal-release-7.60.3.apk (is resumable: true)
D o.f.d.HttpManager: [AsyncTask #1        ] GET https://s3.amazonaws.com/guardianproject/fdroid/repo/Signal-Android-website-prod-universal-release-7.60.3.apk
I o.f.d.MirrorChooserImpl: [AsyncTask #1        ] Last mirror, rethrowing... (404 Not Found)
E DownloaderService: CONNECTION_FAILED: io.ktor.client.plugins.ClientRequestException: Client request(GET https://s3.amazonaws.com/guardianproject/fdroid/repo/Signal-Android-website-prod-universal-release-7.60.3.apk) invalid: 404 Not Found. Text: "<?xml version="1.0" encoding="UTF-8"?>
E DownloaderService: <Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message><Key>fdroid/repo/Signal-Android-website-prod-universal-release-7.60.3.apk</Key><RequestId>D1B0C3SWSGVSKPX4</RequestId><HostId>WUmMbibOrm5tY5j+yJpeAEokPK8MG5IYs4QxbTIGSvzPa9UAHI2b2hLhHuExfMFpp7CJ5OtoN5I=</HostId></Error>"

next (index only here I guess)

D o.f.d.HttpDownloaderV2: [AsyncTask #1        ] Downloading /Signal-Android-website-prod-universal-release-7.60.3.apk (is resumable: true)
D o.f.d.HttpManager: [AsyncTask #1        ] GET https://raw.githubusercontent.com/guardianproject/fdroid-repo/master/fdroid/repo/Signal-Android-website-prod-universal-release-7.60.3.apk
I o.f.d.MirrorChooserImpl: [AsyncTask #1        ] Last mirror, rethrowing... (404 )
E DownloaderService: CONNECTION_FAILED: io.ktor.client.plugins.ClientRequestException: Client request(GET https://raw.githubusercontent.com/guardianproject/fdroid-repo/master/fdroid/repo/Signal-Android-website-prod-universal-release-7.60.3.apk) invalid: 404 . Text: "404: Not Found"

next

D o.f.d.HttpDownloaderV2: [AsyncTask #1        ] Downloading /Signal-Android-website-prod-universal-release-7.60.3.apk (is resumable: true)
D o.f.d.HttpManager: [AsyncTask #1        ] GET https://objectstorage.eu-amsterdam-1.oraclecloud.com/n/axdsgxwpq5rg/b/guardianproject/o/fdroid/repo/Signal-Android-website-prod-universal-release-7.60.3.apk
I o.f.d.MirrorChooserImpl: [AsyncTask #1        ] Last mirror, rethrowing... (404 Not Found)
E DownloaderService: CONNECTION_FAILED: io.ktor.client.plugins.ClientRequestException: Client request(GET https://objectstorage.eu-amsterdam-1.oraclecloud.com/n/axdsgxwpq5rg/b/guardianproject/o/fdroid/repo/Signal-Android-website-prod-universal-release-7.60.3.apk) invalid: 404 Not Found. Text: "{"code":"ObjectNotFound","message":"The object 'fdroid/repo/Signal-Android-website-prod-universal-release-7.60.3.apk' was not found in the bucket 'guardianproject'"}"

next: guardian repo mirror fails ($4897197) · Snippets · GitLab

next: guardina repo mirror fail 2 ($4897199) · Snippets · GitLab

only Guardian Project Official App Repository actually works

Thank you for testing. I think I found the problem. DNS cache seems not to timeout. (workaround below)
guardianproject.info resolves to 204.19.241.151
But the error messages are about 162.247.75.177

When i have only Guardian Project Official App Repository enabled in the repo settings the error looks like this:
”Guardian Project: Connect timeout has expired [url=https://guardianproject.info/fdroid/repo/entry.jar, connect_timeout=unknown ms] failed to connect to /162.247.75.177 (port 443) from /rfc1918_IP (port randomHigh portnr) after 10000ms"

dig -t a guardianproject.info

; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> -t a guardianproject.info
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48900
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;guardianproject.info.		IN	A

;; ANSWER SECTION:
guardianproject.info.	3600	IN	A	204.19.241.151

;; Query time: 416 msec
;; SERVER: 100.64.0.7#53(100.64.0.7) (UDP)
;; WHEN: Fri Oct 17 13:38:08 CEST 2025
;; MSG SIZE  rcvd: 65

Workaround:

  • completely remove repository guardianproject (apps can remain installed)
  • close/open FDroid
  • check for updates (update notifications of guardian project apps are now gone)
  • add repository guardianproject (update notifications of guardian project apps re-appear)
  • Problem gone, you can update as usual.

Just disabling/ refreshing /enabling does not fix the problem.
I’m not sure about the root cause an it it might be in the repo or in FDroid itself. If the latter please reopen this bug report.

We had a DNS cache issue before. :thinking:

Can you confirm if you toggled on the F-Droid setting “DNS cache” ?

Can confirm. If you switch off the “Use DNS cache“ switch in settings the problem is also gone.

ref: DNS Cache - set a timeout to clear/invalidate (#2948) · Issues · F-Droid / Client · GitLab

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.