Getting a 404 from Github when doing `pihole -up`

Please follow the below template, it will help us to help you!

Just to note, I typically run pihole -up as a cronjob. This failed last night, and the details of my subsequent attempted updates are also listed below.

Expected Behaviour:

Running pihole -up, get updated to the latest version

Actual Behaviour:

Initially, I got the following:

  [i] Checking for updates...
  [i] Pi-hole Core:	update available
  [i] FTL:		update available
  [i] Web Interface:	update available

  [i] Updating Pi-hole core and web admin files
  [i] Check for existing repository in /etc/.pihole...
e[K  [✓] Check for existing repository in /etc/.pihole
  [i] Update repo in /etc/.pihole...
e[K  [✓] Update repo in /etc/.pihole


  [✓] Root user check

        .;;,.
        .ccccc:,.
         :cccclll:.      ..,,
          :ccccclll.   ;ooodc
           'ccll:;ll .oooodc
             .;cll.;;looo:.
                 .. ','.
                .',,,,,,'.
              .',,,,,,,,,,.
            .',,,,,,,,,,,,....
          ....''',,,,,,,'.......
        .........  ....  .........
        ..........      ..........
        ..........      ..........
        .........  ....  .........
          ........,,,,,,,'......
            ....',,,,,,,,,,,,.
               .',,,,,,,,,'.
                .',,,,,,'.
                  ..'''.

  [i] Existing PHP installation detected : PHP version 7.0.27-0+deb9u1
  [i] Performing unattended setup, no whiptail dialogs will be displayed
  [✓] Disk space check

  [i] Update local cache of available packages...
e[K  [✗] Update local cache of available packages
  Error: Unable to update package cache. Please try "apt-get update"
  Unable to complete update, please contact Pi-hole Support

I resolved this, by running apt update && apt full-upgrade -y however, I'm now getting the following:

  [i] Checking for updates...
  [i] Pi-hole Core:     up to date
  [i] FTL:              update available

  [i] FTL out of date

  [i] FTL Checks...
  [i] Downloading and Installing FTL...curl: (22) The requested URL returned error: 404 Not Found
  [✗] Downloading and Installing FTL
  Error: URL not found

After doing a bit of checking, I found that this appears to be because the update script (bash -x /opt/pihole/update.sh) is trying to go to an invalid Github page:

Here's an exerpt from that script's output in -x mode

+ echo -e '  [i] FTL Checks...'
  [i] FTL Checks...
+ FTLcheckUpdate
+ local FTLversion
++ /usr/bin/pihole-FTL tag
+ FTLversion=
+ local FTLlatesttag
++ curl -sI https://github.com/pi-hole/FTL/releases/latest
++ grep Location
++ awk -F / '{print $NF}'
++ tr -d '\r\n'
+ FTLlatesttag=v4.0
+ [[ '' != \v\4\.\0 ]]
+ return 0
+ FTLinstall ''
+ local binary=
+ local latesttag
+ local 'str=Downloading and Installing FTL'
+ echo -ne '  [i] Downloading and Installing FTL...'
  [i] Downloading and Installing FTL...++ curl -sI https://github.com/pi-hole/FTL/releases/latest
++ awk -F / '{print $NF}'
++ grep Location
+ latesttag=$'v4.0\r'
 == v* ]].0
++ mktemp -d
+ pushd /tmp/tmp.mOTgBJ0tTU
+ install -T -m 0755 /etc/.pihole/advanced/Templates/pihole-FTL.service /etc/init.d/pihole-FTL
+ local ftlBranch
+ local url
+ [[ -f /etc/pihole/ftlbranch ]]
+ ftlBranch=master
+ [[ master == \m\a\s\t\e\r ]]
+ url=https://github.com/pi-hole/FTL/releases/download/v4.0
+ curl -sSL --fail https://github.com/pi-hole/FTL/releases/download/v4.0/ -o ''
curl: (22) The requested URL returned error: 404 Not Found
+ popd
+ echo -e '\r  [✗] Downloading and Installing FTL'
  [✗] Downloading and Installing FTL
+ echo -e '  Error: URL not found'
  Error: URL not found
+ return 1
+ return 1

Debug Token:

h5hqgcgw8j

1 Like

Please try the update again and let us know if it continues to fail.

So, I fixed it. I don't think it was the "right" way, but it worked. It looks like there's an issue in the version detection it's running, but I can't see why that's occuring (and now I don't think I can replicate it).

In /etc/.pihole/automated install/basic-install.sh I added this line:

root@pi-hole:/etc/.pihole# git diff
diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh
index 10e43b6..13b0295 100755
--- a/automated install/basic-install.sh
+++ b/automated install/basic-install.sh
@@ -2026,6 +2026,7 @@ clone_or_update_repos() {
 FTLinstall() {
     # Local, named variables
     local binary="${1}"
+    if [ -z "$binary" ] ; then local binary=pihole-FTL-arm-linux-gnueabihf ; fi
     local latesttag
     local str="Downloading and Installing FTL"
     echo -ne "  ${INFO} ${str}..."

This then let me run the update.sh and it worked.

2 Likes

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