"unexpected catalog connection error" installing older version of teleport package on aarch64-darwin

I’m trying to install teleport@14.3.0 on aarch64-darwin and getting the following error:

❌ ERROR: Failed to lock the manifest.

unexpected catalog connection error

Running with -vv I see this error:

2025-02-12T20:03:03.324237Z DEBUG install: flox::commands::install: install error: Core(LockedManifest(CatalogResolve(CatalogClientError(UnexpectedError(Unexpected Response: Response { url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.flox.dev")), port: None, path: "/api/v1/catalog/resolve", query: None, fragment: None }, status: 502, headers: {"date": "Wed, 12 Feb 2025 20:03:03 GMT", "content-type": "text/html", "content-length": "122", "connection": "keep-alive", "server": "awselb/2.0", "apigw-requestid": "F4yuShFYIAMEaww="} })))))

I can install the latest version of teleport without any issue. I’ve also been able to install teleport@14.3.0 on x86_64-linux successfully. Is there anything else I should try to get it to work on aarch64-darwin?

I’m able to successfully flox install teleport@14.3.0 on aarch64-darwin with flox --version 1.3.12. I’m not quite sure yet if that was an intermittent network failure for you or if there’s something else going on. Is this part of a larger manifest you could send?

I was able to install teleport@14.3.0 into a fresh environment on the same aarch64-darwin host where I’m getting the error so it does seem like it could be something about the environment I’m installing it into. Here’s the manifest for the environment where I get the error:

## Flox Environment Manifest -----------------------------------------
##
##   _Everything_ you need to know about the _manifest_ is here:
##
##               https://flox.dev/docs/concepts/manifest
##
## -------------------------------------------------------------------
# Flox manifest version managed by Flox CLI
version = 1


## Install Packages --------------------------------------------------
##  $ flox install gum  <- puts a package in [install] section below
##  $ flox search gum   <- search for a package
##  $ flox show gum     <- show all versions of a package
## -------------------------------------------------------------------
[install]
tailscale.pkg-path = "tailscale"
which.pkg-path = "which"
bash-preexec.pkg-path = "bash-preexec"
blesh.pkg-path = "blesh"
wget.pkg-path = "wget"
jq.pkg-path = "jq"
usql.pkg-path = "usql"
httpie.pkg-path = "httpie"
ssh-copy-id.pkg-path = "ssh-copy-id"
jless.pkg-path = "jless"
htop.pkg-path = "htop"
delta.pkg-path = "delta"
gh.pkg-path = "gh"
bat.pkg-path = "bat"
fastfetch.pkg-path = "fastfetch"
ack.pkg-path = "ack"
terraform.pkg-path = "terraform"
talosctl.pkg-path = "talosctl"
mkcert.pkg-path = "mkcert"
ansible.pkg-path = "ansible"
tmux.pkg-path = "tmux"
shellcheck.pkg-path = "shellcheck"
flyctl.pkg-path = "flyctl"
fzf.pkg-path = "fzf"
zsh.pkg-path = "zsh"
goreleaser.pkg-path = "goreleaser"
k9s.pkg-path = "k9s"
jwt-cli.pkg-path = "jwt-cli"
pstree.pkg-path = "pstree"
zsh-autosuggestions.pkg-path = "zsh-autosuggestions"
zsh-syntax-highlighting.pkg-path = "zsh-syntax-highlighting"
zellij.pkg-path = "zellij"
stow.pkg-path = "stow"
ansible-lint.pkg-path = "ansible-lint"
colordiff.pkg-path = "colordiff"
consul.pkg-path = "consul"
ctop.pkg-path = "ctop"
atuin.pkg-path = "atuin"
atuin.version = "18.4.0"
temporal-cli.pkg-path = "temporal-cli"
yq.pkg-path = "yq"
xh.pkg-path = "xh"
websocat.pkg-path = "websocat"
watch.pkg-path = "watch"
visidata.pkg-path = "visidata"
vegeta.pkg-path = "vegeta"
s3cmd.pkg-path = "s3cmd"
rclone.pkg-path = "rclone"
tldr.pkg-path = "tldr"
ripgrep.pkg-path = "ripgrep"
silver-searcher.pkg-path = "silver-searcher"
picotool.pkg-path = "picotool"
dagger.pkg-path = "dagger"
dagger.pkg-group = "dagger"
popeye.pkg-path = "popeye"
dashing.pkg-path = "dashing"
git-secrets.pkg-path = "git-secrets"
hey.pkg-path = "hey"
iperf3.pkg-path = "iperf3"
gnuplot.pkg-path = "gnuplot"
asciinema.pkg-path = "asciinema"
awscli.pkg-path = "awscli"
glow.pkg-path = "glow"
wishlist.pkg-path = "wishlist"
exercism.pkg-path = "exercism"
fswatch.pkg-path = "fswatch"
dive.pkg-path = "dive"
podman.pkg-path = "podman"
lima.pkg-path = "lima"
ncdu.pkg-path = "ncdu"
rename.pkg-path = "rename"
ngrep.pkg-path = "ngrep"
nmap.pkg-path = "nmap"
newman.pkg-path = "newman"
jo.pkg-path = "jo"
mark.pkg-path = "mark"
wdiff.pkg-path = "wdiff"
netcat.pkg-path = "netcat"
httpstat.pkg-path = "httpstat"
helm.pkg-path = "helm"
helm.systems = ["aarch64-linux", "x86_64-linux"]
graphviz.pkg-path = "graphviz"
just.pkg-path = "just"
code-server.pkg-path = "code-server"
code-server.systems = ["aarch64-linux", "x86_64-darwin", "x86_64-linux"]
nginx.pkg-path = "nginx"
tilt.pkg-path = "tilt"
curl.pkg-path = "curl"
kubecfg.pkg-path = "kubecfg"
kubectx.pkg-path = "kubectx"
pdsh.pkg-path = "pdsh"
pv.pkg-path = "pv"
s5cmd.pkg-path = "s5cmd"
virtualenv.pkg-path = "virtualenv"
starship.pkg-path = "starship"
direnv.pkg-path = "direnv"
git.pkg-path = "git"
python312Full.pkg-path = "python312Full"
requests.pkg-path = "python312Packages.requests"
vault-bin.pkg-path = "vault-bin"

# gum.pkg-path = "gum"
# gum.version = "^0.14.5"


## Environment Variables ---------------------------------------------
##  ... available for use in the activated environment
##      as well as [hook], [profile] scripts and [services] below.
## -------------------------------------------------------------------
[vars]
# INTRO_MESSAGE = "It's gettin' Flox in here"


## Activation Hook ---------------------------------------------------
##  ... run by _bash_ shell when you run 'flox activate'.
## -------------------------------------------------------------------
[hook]
# on-activate = '''
#   # -> Set variables, create files and directories
#   # -> Perform initialization steps, e.g. create a python venv
#   # -> Useful environment variables:
#   #      - FLOX_ENV_PROJECT=/home/user/example
#   #      - FLOX_ENV=/home/user/example/.flox/run
#   #      - FLOX_ENV_CACHE=/home/user/example/.flox/cache
# '''


## Profile script ----------------------------------------------------
## ... sourced by _your shell_ when you run 'flox activate'.
## -------------------------------------------------------------------
[profile]
# common = '''
#   gum style \
#   --foreground 212 --border-foreground 212 --border double \
#   --align center --width 50 --margin "1 2" --padding "2 4" \
#     $INTRO_MESSAGE
# '''
## Shell specific profiles go here:
# bash = ...
# zsh  = ...
# fish = ...
bash = '''
 preexec="bash/bash-preexec.sh"
 IFS=":" read -ra paths <<< "$XDG_DATA_DIRS"

 for path in "${paths[@]}"
 do
     if [ -f "$path/$preexec" ]; then
         source "$path/$preexec"
         break
     fi
 done
 
 eval "$(atuin init bash)"
'''

## Services ----------------------------------------------------------
##  $ flox services start             <- Starts all services
##  $ flox services status            <- Status of running services
##  $ flox activate --start-services  <- Activates & starts all
## -------------------------------------------------------------------
[services]
# myservice.command = "python3 -m http.server"

## Other Environment Options -----------------------------------------
[options]
# Systems that environment is compatible with
systems = [
  "aarch64-darwin",
  "aarch64-linux",
  "x86_64-darwin",
  "x86_64-linux",
]
# Uncomment to disable CUDA detection.
# cuda-detection = false

This is most likely due to your manifest being too large for the catalog server to resolve all of your packages. You could just try a few times to see if it’s able to complete before timeout. Or a possible workaround is to move some of your packages to a different pkg-group, e.g. teleport.pkg-group = "workaround", tailscale.pkg-group = "workaround", etc.

I created `flox install` fails when environment has many packages · Issue #2733 · flox/flox · GitHub to track this