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.)
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.
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'"}"
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
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.