GitHub Action hangs indefinitely when using flox activate on Ubuntu / Linux

Hey there! I’ve been using Flox on Mac basically without a hitch for 3 months, and I’ve started to explore using Flox for GitHub Actions. However, I can’t seem to get Flox to activate in a linux environment. Here are the steps I went through.

I wanted to test Flox GitHub actions locally, so I installed act within my Flox environment (GitHub - nektos/act: Run your GitHub Actions locally 🚀)

I then followed the GitHub actions tutorial and set up my workflow like this

name: Flox

on:
    workflow_dispatch:

jobs:
    build:
        name: "Build website"

        runs-on: ubuntu-latest

        steps:
            - name: "Checkout"
              uses: "actions/checkout@v4"

            - name: "Install Flox"
              uses: "flox/install-flox-action@v2"

            - name: "Build"
              uses: "flox/activate-action@v1"
              with:
                  command: echo "Hello world"

Running this command provides the following output

act -W .github/workflows/ci-v2.yaml workflow_dispatch
INFO[0000] Using docker host 'unix:///var/run/docker.sock', and daemon socket 'unix:///var/run/docker.sock' 
[Flox/Build website] ⭐ Run Set up job
[Flox/Build website] 🚀  Start image=ghcr.io/catthehacker/ubuntu:act-latest
[Flox/Build website]   🐳  docker pull image=ghcr.io/catthehacker/ubuntu:act-latest platform=linux/amd64 username= forcePull=true
[Flox/Build website]   🐳  docker create image=ghcr.io/catthehacker/ubuntu:act-latest platform=linux/amd64 entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[Flox/Build website]   🐳  docker run image=ghcr.io/catthehacker/ubuntu:act-latest platform=linux/amd64 entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[Flox/Build website]   🐳  docker exec cmd=[node --no-warnings -e console.log(process.execPath)] user= workdir=
[Flox/Build website]   ✅  Success - Set up job
[Flox/Build website]   ☁  git clone 'https://github.com/flox/install-flox-action' # ref=v2
[Flox/Build website]   ☁  git clone 'https://github.com/flox/activate-action' # ref=v1
[Flox/Build website] ⭐ Run Pre Build
[Flox/Build website]   ✅  Success - Pre Build [21.016ms]
[Flox/Build website] ⭐ Run Main Checkout
[Flox/Build website]   🐳  docker cp src=/Users/jordan/GitHub/foundry/. dst=/Users/jordan/GitHub/foundry
[Flox/Build website]   ✅  Success - Main Checkout [2.369841583s]
[Flox/Build website] ⭐ Run Main Install Flox
[Flox/Build website]   🐳  docker cp src=/Users/jordan/.cache/act/flox-install-flox-action@v2/ dst=/var/run/act/actions/flox-install-flox-action@v2/
[Flox/Build website]   🐳  docker exec cmd=[/opt/acttoolcache/node/18.20.8/x64/bin/node /var/run/act/actions/flox-install-flox-action@v2/dist/index.js] user= workdir=
[Flox/Build website]   ❓  ::group::Download & Install flox
| DOWNLOAD_URL resolved to https://downloads.flox.dev/by-env/stable/deb/flox.x86_64-linux.deb
| [command]/usr/bin/bash -c /run/act/actions/flox-install-flox-action@v2/scripts/install-flox.sh
| Downloading flox...
|   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
|                                  Dload  Upload   Total   Spent    Left  Speed
100 56.4M  100 56.4M    0     0  82.3M      0 --:--:-- --:--:-- --:--:-- 82.6M
| Installing flox...
| Selecting previously unselected package flox.
| (Reading database ... 26725 files and directories currently installed.)
| Preparing to unpack flox.x86_64-linux.deb ...
| Unpacking flox (1.4.1) ...
| Setting up flox (1.4.1) ...
[Flox/Build website]   ❓  ::endgroup::
[Flox/Build website]   ✅  Success - Main Install Flox [6.535572292s]
[Flox/Build website]   ⚙  ::set-env:: INPUT_DOWNLOAD_URL=https://downloads.flox.dev/by-env/stable/deb/flox.x86_64-linux.deb
[Flox/Build website] ⭐ Run Main Build
[Flox/Build website]   🐳  docker cp src=/Users/jordan/.cache/act/flox-activate-action@v1/ dst=/var/run/act/actions/flox-activate-action@v1/
[Flox/Build website] ⭐ Run Main Run flox activate
[Flox/Build website]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/2-composite-0.sh] user= workdir=
| Flox collects basic usage metrics in order to improve the user experience.
| 
| Flox includes a record of the subcommand invoked along with a unique token.
| It does not collect any personal information.
| 
| The collection of metrics can be disabled in the following ways:
| 
|   environment: FLOX_DISABLE_METRICS=true
|     user-wide: flox config --set disable_metrics true
|   system-wide: update /etc/flox.toml as described in flox-config(1)
| 
| This is a one-time notice.
| 
| 
⠒ Building environment 

Where the animation for the Building environment pauses.

I thought this might have to do with me using an Apple Silicon Macbook and running a linux amd64 container using rosetta locally so I tried deploying the action to GitHub to run on one of their runners and it hangs there too, with different logs though (slightly)

2025-05-13T09:25:09.6046100Z Current runner version: '2.323.0'
2025-05-13T09:25:09.6081245Z ##[group]Operating System
2025-05-13T09:25:09.6082565Z Ubuntu
2025-05-13T09:25:09.6083342Z 24.04.2
2025-05-13T09:25:09.6084101Z LTS
2025-05-13T09:25:09.6084937Z ##[endgroup]
2025-05-13T09:25:09.6085766Z ##[group]Runner Image
2025-05-13T09:25:09.6086771Z Image: ubuntu-24.04
2025-05-13T09:25:09.6087554Z Version: 20250504.1.0
2025-05-13T09:25:09.6089151Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20250504.1/images/ubuntu/Ubuntu2404-Readme.md
2025-05-13T09:25:09.6090531Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20250504.1
2025-05-13T09:25:09.6092367Z ##[endgroup]
2025-05-13T09:25:09.6093391Z ##[group]Runner Image Provisioner
2025-05-13T09:25:09.6094389Z 2.0.422.1
2025-05-13T09:25:09.6095162Z ##[endgroup]
2025-05-13T09:25:09.6097079Z ##[group]GITHUB_TOKEN Permissions
2025-05-13T09:25:09.6099650Z Contents: read
2025-05-13T09:25:09.6100658Z Metadata: read
2025-05-13T09:25:09.6102071Z Packages: read
2025-05-13T09:25:09.6103173Z ##[endgroup]
2025-05-13T09:25:09.6106003Z Secret source: Actions
2025-05-13T09:25:09.6107142Z Prepare workflow directory
2025-05-13T09:25:09.6811112Z Prepare all required actions
2025-05-13T09:25:09.6869063Z Getting action download info
2025-05-13T09:25:10.3673323Z ##[group]Download immutable action package 'actions/checkout@v4'
2025-05-13T09:25:10.3674693Z Version: 4.2.2
2025-05-13T09:25:10.3675806Z Digest: sha256:ccb2698953eaebd21c7bf6268a94f9c26518a7e38e27e0b83c1fe1ad049819b1
2025-05-13T09:25:10.3677317Z Source commit SHA: 11bd71901bbe5b1630ceea73d27597364c9af683
2025-05-13T09:25:10.3678355Z ##[endgroup]
2025-05-13T09:25:10.4541651Z Download action repository 'flox/install-flox-action@v2' (SHA:ba0eb4eb776f1d3b47279d7980f6643caffd8c41)
2025-05-13T09:25:11.0618918Z Download action repository 'flox/activate-action@v1' (SHA:bdcbcf8d84af6f503e588ae4125e48133787df95)
2025-05-13T09:25:11.5880195Z Complete job name: Build website
2025-05-13T09:25:11.6601479Z ##[group]Run actions/checkout@v4
2025-05-13T09:25:11.6602832Z with:
2025-05-13T09:25:11.6603594Z   repository: foundrydev/foundry
2025-05-13T09:25:11.6604831Z   token: ***
2025-05-13T09:25:11.6605584Z   ssh-strict: true
2025-05-13T09:25:11.6606366Z   ssh-user: git
2025-05-13T09:25:11.6607185Z   persist-credentials: true
2025-05-13T09:25:11.6608069Z   clean: true
2025-05-13T09:25:11.6608854Z   sparse-checkout-cone-mode: true
2025-05-13T09:25:11.6609814Z   fetch-depth: 1
2025-05-13T09:25:11.6610591Z   fetch-tags: false
2025-05-13T09:25:11.6611731Z   show-progress: true
2025-05-13T09:25:11.6612540Z   lfs: false
2025-05-13T09:25:11.6613267Z   submodules: false
2025-05-13T09:25:11.6614146Z   set-safe-directory: true
2025-05-13T09:25:11.6615328Z ##[endgroup]
2025-05-13T09:25:11.8729508Z Syncing repository: foundrydev/foundry
2025-05-13T09:25:11.8733098Z ##[group]Getting Git version info
2025-05-13T09:25:11.8734594Z Working directory is '/home/runner/work/foundry/foundry'
2025-05-13T09:25:11.8737203Z [command]/usr/bin/git version
2025-05-13T09:25:11.8770258Z git version 2.49.0
2025-05-13T09:25:11.8806132Z ##[endgroup]
2025-05-13T09:25:11.8820378Z Temporarily overriding HOME='/home/runner/work/_temp/ec37b923-3e04-41dd-aa00-ad501e1a0645' before making global git config changes
2025-05-13T09:25:11.8827085Z Adding repository directory to the temporary git global config as a safe directory
2025-05-13T09:25:11.8830746Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/foundry/foundry
2025-05-13T09:25:11.8874155Z Deleting the contents of '/home/runner/work/foundry/foundry'
2025-05-13T09:25:11.8879640Z ##[group]Initializing the repository
2025-05-13T09:25:11.8884884Z [command]/usr/bin/git init /home/runner/work/foundry/foundry
2025-05-13T09:25:11.8947791Z hint: Using 'master' as the name for the initial branch. This default branch name
2025-05-13T09:25:11.8951211Z hint: is subject to change. To configure the initial branch name to use in all
2025-05-13T09:25:11.8954363Z hint: of your new repositories, which will suppress this warning, call:
2025-05-13T09:25:11.8957355Z hint:
2025-05-13T09:25:11.8960699Z hint: 	git config --global init.defaultBranch <name>
2025-05-13T09:25:11.8962845Z hint:
2025-05-13T09:25:11.8964615Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
2025-05-13T09:25:11.8967619Z hint: 'development'. The just-created branch can be renamed via this command:
2025-05-13T09:25:11.8970054Z hint:
2025-05-13T09:25:11.8971504Z hint: 	git branch -m <name>
2025-05-13T09:25:11.8973732Z Initialized empty Git repository in /home/runner/work/foundry/foundry/.git/
2025-05-13T09:25:11.8981738Z [command]/usr/bin/git remote add origin https://github.com/foundrydev/foundry
2025-05-13T09:25:11.9017715Z ##[endgroup]
2025-05-13T09:25:11.9022228Z ##[group]Disabling automatic garbage collection
2025-05-13T09:25:11.9026121Z [command]/usr/bin/git config --local gc.auto 0
2025-05-13T09:25:11.9051482Z ##[endgroup]
2025-05-13T09:25:11.9055275Z ##[group]Setting up auth
2025-05-13T09:25:11.9058882Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2025-05-13T09:25:11.9095071Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2025-05-13T09:25:11.9397582Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2025-05-13T09:25:11.9426298Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2025-05-13T09:25:11.9668820Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2025-05-13T09:25:11.9706996Z ##[endgroup]
2025-05-13T09:25:11.9711416Z ##[group]Fetching the repository
2025-05-13T09:25:11.9730237Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +39344b34ee050369d76f38e7df062470c9a51a42:refs/remotes/origin/app-router
2025-05-13T09:25:13.5227675Z From https://github.com/foundrydev/foundry
2025-05-13T09:25:13.5228647Z  * [new ref]         39344b34ee050369d76f38e7df062470c9a51a42 -> origin/app-router
2025-05-13T09:25:13.5267688Z ##[endgroup]
2025-05-13T09:25:13.5269602Z ##[group]Determining the checkout info
2025-05-13T09:25:13.5272223Z ##[endgroup]
2025-05-13T09:25:13.5274653Z [command]/usr/bin/git sparse-checkout disable
2025-05-13T09:25:13.5340359Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2025-05-13T09:25:13.5382904Z ##[group]Checking out the ref
2025-05-13T09:25:13.5390655Z [command]/usr/bin/git checkout --progress --force -B app-router refs/remotes/origin/app-router
2025-05-13T09:25:13.7977436Z Switched to a new branch 'app-router'
2025-05-13T09:25:13.7992811Z branch 'app-router' set up to track 'origin/app-router'.
2025-05-13T09:25:13.8014049Z ##[endgroup]
2025-05-13T09:25:13.8078651Z [command]/usr/bin/git log -1 --format=%H
2025-05-13T09:25:13.8124036Z 39344b34ee050369d76f38e7df062470c9a51a42
2025-05-13T09:25:13.8307547Z ##[group]Run flox/install-flox-action@v2
2025-05-13T09:25:13.8307867Z with:
2025-05-13T09:25:13.8308048Z   channel: stable
2025-05-13T09:25:13.8308240Z ##[endgroup]
2025-05-13T09:25:13.9022289Z ##[group]Download & Install flox
2025-05-13T09:25:13.9080255Z DOWNLOAD_URL resolved to https://downloads.flox.dev/by-env/stable/deb/flox.x86_64-linux.deb
2025-05-13T09:25:13.9114099Z [command]/usr/bin/bash -c /home/runner/work/_actions/flox/install-flox-action/v2/scripts/install-flox.sh
2025-05-13T09:25:13.9274326Z Downloading flox...
2025-05-13T09:25:13.9356944Z   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
2025-05-13T09:25:13.9358698Z                                  Dload  Upload   Total   Spent    Left  Speed
2025-05-13T09:25:13.9360204Z 
2025-05-13T09:25:13.9677735Z   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
2025-05-13T09:25:14.4094310Z   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
2025-05-13T09:25:14.4095003Z 100 56.4M  100 56.4M    0     0   119M      0 --:--:-- --:--:-- --:--:--  119M
2025-05-13T09:25:14.4119299Z Installing flox...
2025-05-13T09:25:14.4939253Z Selecting previously unselected package flox.
2025-05-13T09:25:17.9695933Z (Reading database ... 222550 files and directories currently installed.)
2025-05-13T09:25:17.9766353Z Preparing to unpack flox.x86_64-linux.deb ...
2025-05-13T09:25:17.9829540Z Unpacking flox (1.4.1) ...
2025-05-13T09:25:18.4503474Z Setting up flox (1.4.1) ...
2025-05-13T09:25:25.8382306Z Processing triggers for man-db (2.12.0-4build2) ...
2025-05-13T09:26:22.5046482Z ##[endgroup]
2025-05-13T09:26:22.5177936Z ##[group]Run flox/activate-action@v1
2025-05-13T09:26:22.5178215Z with:
2025-05-13T09:26:22.5178403Z   command: echo "Hello world"
2025-05-13T09:26:22.5178615Z env:
2025-05-13T09:26:22.5178950Z   INPUT_DOWNLOAD_URL: https://downloads.flox.dev/by-env/stable/deb/flox.x86_64-linux.deb
2025-05-13T09:26:22.5179357Z ##[endgroup]
2025-05-13T09:26:22.5292314Z ##[group]Run flox activate  -- echo "Hello world"
2025-05-13T09:26:22.5292692Z e[36;1mflox activate  -- echo "Hello world"e[0m
2025-05-13T09:26:22.5321259Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2025-05-13T09:26:22.5321580Z env:
2025-05-13T09:26:22.5321902Z   INPUT_DOWNLOAD_URL: https://downloads.flox.dev/by-env/stable/deb/flox.x86_64-linux.deb
2025-05-13T09:26:22.5322292Z ##[endgroup]
2025-05-13T09:26:22.5549845Z Flox collects basic usage metrics in order to improve the user experience.
2025-05-13T09:26:22.5550503Z 
2025-05-13T09:26:22.5551110Z Flox includes a record of the subcommand invoked along with a unique token.
2025-05-13T09:26:22.5551798Z It does not collect any personal information.
2025-05-13T09:26:22.5552154Z 
2025-05-13T09:26:22.5552431Z The collection of metrics can be disabled in the following ways:
2025-05-13T09:26:22.5552859Z 
2025-05-13T09:26:22.5553026Z   environment: FLOX_DISABLE_METRICS=true
2025-05-13T09:26:22.5553544Z     user-wide: flox config --set disable_metrics true
2025-05-13T09:26:22.5554179Z   system-wide: update /etc/flox.toml as described in flox-config(1)
2025-05-13T09:26:22.5554612Z 
2025-05-13T09:26:22.5554748Z This is a one-time notice.
2025-05-13T09:26:22.5554993Z 
2025-05-13T09:26:22.5554999Z 
2025-05-13T09:38:42.8400796Z ##[error]The operation was canceled.
2025-05-13T09:38:43.0029686Z Post job cleanup.
2025-05-13T09:38:44.0396314Z [command]/usr/bin/git version
2025-05-13T09:38:44.0397435Z git version 2.49.0
2025-05-13T09:38:44.0431891Z Temporarily overriding HOME='/home/runner/work/_temp/f230c2d7-1efa-4391-878c-d3320cf4bce6' before making global git config changes
2025-05-13T09:38:44.0433719Z Adding repository directory to the temporary git global config as a safe directory
2025-05-13T09:38:44.0435194Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/foundry/foundry
2025-05-13T09:38:44.0439386Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2025-05-13T09:38:44.0445280Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2025-05-13T09:38:44.0447162Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2025-05-13T09:38:44.0448021Z http.https://github.com/.extraheader
2025-05-13T09:38:44.0449177Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2025-05-13T09:38:44.0451443Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2025-05-13T09:38:44.0730847Z Cleaning up orphan processes
2025-05-13T09:38:44.1926161Z Terminate orphan process: pid (3903) (.flox-wrapped)
2025-05-13T09:38:44.2074784Z Terminate orphan process: pid (3910) (flox)
2025-05-13T09:38:44.2347617Z Terminate orphan process: pid (10330) (nix)
2025-05-13T09:38:44.3185899Z Terminate orphan process: pid (10343) (nix)

Where it hangs after the This is a one-time notice. The “operation was canceled” shows up because I manually quit the workflow after about 15 minutes of no changes.

So I’m not too sure where to start debugging but here’s my manifest. I’ve already tried removing all my hooks and services so I’m not adding that here

# 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]
act-act.pkg-group = "act"
act-act.pkg-path = "act"
act-act.version = "0.2.77"
caddy.flake = "path:.flox/flakes/caddy-s3"
gum.pkg-path = "gum"
nats-natscli.pkg-group = "nats"
nats-natscli.pkg-path = "natscli"
nats-natscli.version = "0.1.5"
nats-nats-server.pkg-group = "nats"
nats-nats-server.pkg-path = "nats-server"
nats-nats-server.version = "2.10.21"
supabase-supabase-cli.pkg-group = "supabase"
supabase-supabase-cli.pkg-path = "supabase-cli"
supabase-supabase-cli.version = "2.22.8"
turborepo-pnpm.pkg-group = "turborepo"
turborepo-pnpm.pkg-path = "pnpm"
turborepo-pnpm.version = "9.12.0"
typesense-typesense.pkg-group = "typesense"
typesense-typesense.pkg-path = "typesense"
typesense-typesense.version = "26.0"
vault.pkg-group = "vault"
vault.pkg-path = "vault"
vault.version = "1.18.2"
vault-consul-template.pkg-group = "vault"
vault-consul-template.pkg-path = "consul-template"
vault-consul-template.version = "0.39.1"
vault-envconsul.pkg-group = "vault"
vault-envconsul.pkg-path = "envconsul"
vault-envconsul.version = "0.13.2"
cloudflared.pkg-path = "cloudflared"
cloudflared.version = "2025.2.0"
nodejs_22.pkg-path = "nodejs_22"
flyctl.pkg-path = "flyctl"
sftpgo.pkg-path = "sftpgo"
sftpgo.version = "2.6.6"
rclone.pkg-path = "rclone"

## Environment Variables ---------------------------------------------
##  ... available for use in the activated environment
##      as well as [hook], [profile] scripts and [services] below.
## -------------------------------------------------------------------
[vars]
VAULT_ADDR = "https://foundry-vault.fly.dev"
VAULT_ENV = "dev"

## 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

My Caddy dependency is a custom flake within the the .flox directory of my environment and is defined as such

{
  description = "Caddy with certmagik-s3";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs =
    {
      self,
      nixpkgs,
      flake-utils,
    }:
    flake-utils.lib.eachDefaultSystem (
      system:
      let
        pkgs = import nixpkgs {
          inherit system;
        };

        caddy-s3 = pkgs.caddy.withPlugins {
          # plugins require a version number, this lib doesn't tag releases, so we just pulled the go pseudo version
          # https://github.com/NixOS/nixpkgs/blob/e3e32b642a31e6714ec1b712de8c91a3352ce7e1/pkgs/by-name/ca/caddy/plugins.nix#L44
          plugins = [ "github.com/ss098/certmagic-s3@v0.0.0-20240919074713-f227064b6744" ];
          hash = "4ZtSgpoXcGBxEF7ALsCDkePM8E0G6geEaNKMrr3MjQE=";
        };
      in
      {
        packages.default = caddy-s3;
      }
    );
}

I took a crash course in Nix but still have a ton to understand but I don’t think I’m doing anything too crazy here.

Any ideas where we can start debugging to figure out the culprit here? I also tried running an Ubuntu machine from Orbstack and that build also froze (but this is essentially a container just like act runs so I guess I’m not surprised this failed as well). Anyways, really appreciate any help and more than happy to provide more resources to help debug. Thanks!!

I get a different error trying to reproduce this locally with act. I’m also running a
M2 Apple Silicon chip.

flox [tmp.LKMZkOCHTg] $ act -W .github/workflows/ci-v2.yaml workflow_dispatch
INFO[0000] Using docker host 'unix:///var/run/docker.sock', and daemon socket 'unix:///var/run/docker.sock'
WARN  ⚠ You are using Apple M-series chip and you have not specified container architecture, you might encounter issues while running act. If so, try running it with '--container-architecture linux/amd64'. ⚠
[Flox/Build website] ⭐ Run Set up job
[Flox/Build website] 🚀  Start image=catthehacker/ubuntu:act-latest
[Flox/Build website]   🐳  docker pull image=catthehacker/ubuntu:act-latest platform= username= forcePull=true
[Flox/Build website] using DockerAuthConfig authentication for docker pull
[Flox/Build website]   🐳  docker create image=catthehacker/ubuntu:act-latest platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[Flox/Build website]   🐳  docker run image=catthehacker/ubuntu:act-latest platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[Flox/Build website]   🐳  docker exec cmd=[node --no-warnings -e console.log(process.execPath)] user= workdir=
[Flox/Build website]   ✅  Success - Set up job
[Flox/Build website]   ☁  git clone 'https://github.com/flox/install-flox-action' # ref=v2
[Flox/Build website]   ☁  git clone 'https://github.com/flox/activate-action' # ref=v1
[Flox/Build website] ⭐ Run Pre Build
[Flox/Build website]   ✅  Success - Pre Build [22.038916ms]
[Flox/Build website] ⭐ Run Main Checkout
[Flox/Build website]   🐳  docker cp src=/var/folders/vw/ksgd_r_j51704dss486tzpmc0000gn/T/tmp.LKMZkOCHTg/. dst=/var/folders/vw/ksgd_r_j51704dss486tzpmc0000gn/T/tmp.LKMZkOCHTg
[Flox/Build website]   ✅  Success - Main Checkout [23.250042ms]
[Flox/Build website] ⭐ Run Main Install Flox
[Flox/Build website]   🐳  docker cp src=/Users/bryanhonof/.cache/act/flox-install-flox-action@v2/ dst=/var/run/act/actions/flox-install-flox-action@v2/
[Flox/Build website]   🐳  docker exec cmd=[/opt/acttoolcache/node/18.20.8/arm64/bin/node /var/run/act/actions/flox-install-flox-action@v2/dist/index.js] user= workdir=
[Flox/Build website]   ❓  ::group::Download & Install flox
| DOWNLOAD_URL resolved to https://downloads.flox.dev/by-env/stable/deb/flox.aarch64-linux.deb
| [command]/usr/bin/bash -c /run/act/actions/flox-install-flox-action@v2/scripts/install-flox.sh
| Downloading flox...
|   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
|                                  Dload  Upload   Total   Spent    Left  Speed
100 53.2M  100 53.2M    0     0  22.2M      0  0:00:02  0:00:02 --:--:-- 22.2M
| Installing flox...
| Selecting previously unselected package flox.
| (Reading database ... 26705 files and directories currently installed.)
| Preparing to unpack flox.aarch64-linux.deb ...
| Unpacking flox (1.4.1) ...
| Setting up flox (1.4.1) ...
[Flox/Build website]   ❓  ::endgroup::
[Flox/Build website]   ✅  Success - Main Install Flox [6.011122375s]
[Flox/Build website]   ⚙  ::set-env:: INPUT_DOWNLOAD_URL=https://downloads.flox.dev/by-env/stable/deb/flox.aarch64-linux.deb
[Flox/Build website] ⭐ Run Main Build
[Flox/Build website]   🐳  docker cp src=/Users/bryanhonof/.cache/act/flox-activate-action@v1/ dst=/var/run/act/actions/flox-activate-action@v1/
[Flox/Build website] ⭐ Run Main Run flox activate
[Flox/Build website]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/2-composite-0.sh] user= workdir=
| Flox collects basic usage metrics in order to improve the user experience.
|
| Flox includes a record of the subcommand invoked along with a unique token.
| It does not collect any personal information.
|
| The collection of metrics can be disabled in the following ways:
|
|   environment: FLOX_DISABLE_METRICS=true
|     user-wide: flox config --set disable_metrics true
|   system-wide: update /etc/flox.toml as described in flox-config(1)
|
| This is a one-time notice.
|
|
❌ ERROR: Failed to build environment:
|
| Failed to realise 'sftpgo':
| unpacking 'github:flox/nixpkgs/c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5' into the Git cache...
| warning: creating lock file '/tmp/nix-576-0/flake.lock':
| • Added input 'nixpkgs':
|     'github:flox/nixpkgs/c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5?narHash=sha256-C7jVfohcGzdZRF6DO%2BybyG/sqpo1h6bZi9T56sxLy%2Bk%3D' (2025-03-15)
| these 3 derivations will be built:
|   /nix/store/r4agm7hc9k1l997bbrs76x5jvr4saf1v-source.drv
|   /nix/store/q2x0sy54parvqs8jz8mhly272lf5ks7y-sftpgo-2.6.6-go-modules.drv
|   /nix/store/rlwi10x94hcfafvj6i3ig62jipw04mgy-sftpgo-2.6.6.drv
| these 106 paths will be fetched (172.69 MiB download, 828.38 MiB unpacked):

<A bunch of stuff compiling from source for some reason...>

| sftpgo> go: downloading github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8
| sftpgo> go: downloading github.com/cncf/xds/go v0.0.0-20241213214725-57cfbe6fad57
| sftpgo> go: downloading golang.org/x/tools v0.28.0
| sftpgo> go: downloading github.com/felixge/httpsnoop v1.0.4
| sftpgo> go: downloading cel.dev/expr v0.19.1
| sftpgo> go: downloading github.com/envoyproxy/protoc-gen-validate v1.1.0
| sftpgo> go: downloading github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10
| sftpgo> go: downloading github.com/census-instrumentation/opencensus-proto v0.4.1
| sftpgo> go: downloading golang.org/x/mod v0.22.0
| sftpgo> Running phase: installPhase
| error: home directory '/homeless-shelter' exists; please remove it to assure purity of builds without sandboxing
|
|
[Flox/Build website]   ❌  Failure - Main Run flox activate [1m10.371457084s]
[Flox/Build website] exitcode '1': failure
[Flox/Build website]   ❌  Failure - Main Build [1m10.468038042s]
[Flox/Build website] exitcode '1': failure
[Flox/Build website] ⭐ Run Post Build
[Flox/Build website]   🐳  docker cp src=/Users/bryanhonof/.cache/act/flox-activate-action@v1/ dst=/var/run/act/actions/flox-activate-action@v1/
[Flox/Build website]   ✅  Success - Post Build [19.549584ms]
[Flox/Build website] ⭐ Run Complete job
[Flox/Build website]   ✅  Success - Complete job
[Flox/Build website] 🏁  Job failed
Error: Job 'Build website' failed
flox [tmp.LKMZkOCHTg] $

It does take a while for this to fail. I had to wait ~10 minutes for it to get to that point.

Running act again with --container-architecture linux/amd64 results in the same error.

I believe this has something to do with the Nix installation that is done behind the scenes when the flox-install-action runs inside a container. If I’m not mistaken, this installs Nix in “single-user mode”, and perhaps does something weird with the sandbox? I’ll have to dig a bit deeper, will report back when I find out more.

Hey Bryan! Thanks for your help looking in to this. Now that you mention it, I’ve also run in to that same error with sftpgo and it also occurred with vault. (same error about /homeless-shelter)

When I received the vault one, I thought it had something to do with that package so I commented out all the others in my manifest, ran it again. It ran successfully, ran it again and it failed with the /homeless-shelter error again. It seems to be really inconsistent. The worst kind of bug! Really appreciate your time on this.

(I’m also on M2 Mac and 1.4.1 Flox)

Thanks

I got the same error as @bryanhonof when I tried to reproduce. So I think there are two issues here:

  1. Building packages like sftpgo that have to be built from source fails in an ubuntu container. I created an issue for that: Building from source fails in Ubuntu container · Issue #3069 · flox/flox · GitHub
  2. Building packages from source is really slow. That’s probably something that needs a better long term solution. I’m guessing 20 min of building packages isn’t feasible for your CI? Would your use case allow creating a container with flox containerize and then running that container in your GitHub action?

Wow thanks for also helping to look in to this!

  1. I’ll keep an eye on that ticket
  2. Yea 20mins wouldn’t really be ideal. I wasn’t even getting any feedback that the build was progressing in the GitHub action too. So my use case is to first (obviously) recreate my local environment in an ubuntu machine, and second, run Microsoft Playwright for my E2E tests by running pnpm run test.

Following the guidance from the docs for CI, the setup described there is exactly what I’d want. I haven’t explored containerize just yet. I was really hoping to avoid containerizing my environments as that was why I found and chose Flox in the first place haha. But maybe I’m missing something about how that works…