Igniter stuck in loop on brand new install

I have a brand new install, when I run the command (provided by https://ash-hq.org/#installer), it gets stuck in an infinite loop of:
setting up igniter ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
...
setting up igniter ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
...
How do I convince igniter that setting up and compiling once is enough?
Ash HQ
Ash Framework
Model your domain, derive the rest.
16 Replies
ZachDaniel
ZachDaniel3w ago
🤔 Can you add --verbose to the command?
ieatkittens
ieatkittensOP3w ago
I trimmed back the igniter command to just install ash:
❯ mix igniter.install ash --verbose
Updating project's igniter dependency:
Updating project's igniter dependency: ✔
checking for igniter in project:
checking for igniter in project: ✔
compiling igniter:
===> Analyzing applications...
===> Compiling telemetry
===> Analyzing applications...
===> Compiling telemetry_poller
compiling igniter: ✔
setting up igniter:
setting up igniter: ✔
compiling igniter:
===> Analyzing applications...
===> Compiling telemetry
===> Analyzing applications...
===> Compiling telemetry_poller
compiling igniter: ✔
❯ mix igniter.install ash --verbose
Updating project's igniter dependency:
Updating project's igniter dependency: ✔
checking for igniter in project:
checking for igniter in project: ✔
compiling igniter:
===> Analyzing applications...
===> Compiling telemetry
===> Analyzing applications...
===> Compiling telemetry_poller
compiling igniter: ✔
setting up igniter:
setting up igniter: ✔
compiling igniter:
===> Analyzing applications...
===> Compiling telemetry
===> Analyzing applications...
===> Compiling telemetry_poller
compiling igniter: ✔
❯ asdf current
Name Version
elixir 1.18.3
erlang 27.3
❯ asdf current
Name Version
elixir 1.18.3
erlang 27.3
ZachDaniel
ZachDaniel3w ago
So you're currently in an Elixir proejct right? like in a folder w/ a mix.exs file etc?
ieatkittens
ieatkittensOP3w ago
Yes - this is the full command I used to create it:
sh <(curl 'https://ash-hq.org/install/unfluence?install=phoenix') \ ─╯
&& cd unfluence && mix igniter.install ash ash_phoenix \
ash_postgres ash_authentication ash_authentication_phoenix \
ash_admin live_debugger mishka_chelekom cloak ash_cloak \
--auth-strategy magic_link --yes && mix ash.setup
sh <(curl 'https://ash-hq.org/install/unfluence?install=phoenix') \ ─╯
&& cd unfluence && mix igniter.install ash ash_phoenix \
ash_postgres ash_authentication ash_authentication_phoenix \
ash_admin live_debugger mishka_chelekom cloak ash_cloak \
--auth-strategy magic_link --yes && mix ash.setup
ZachDaniel
ZachDaniel3w ago
Interesting So you're installing ash and it's already there? What if you install something else
ieatkittens
ieatkittensOP3w ago
How can I tell if ash is already there? It's not listed in the generated mix.exs and I don't see it in the deps
ZachDaniel
ZachDaniel3w ago
That's quite strange. What's the output when you run that original command? Are you on windows?
ieatkittens
ieatkittensOP3w ago
I am on an M1 macbook running Sequoia 15.3.1 New command:
sh <(curl 'https://ash-hq.org/install/test_new?install=phoenix') \
&& cd test_new && mix igniter.install ash ash_phoenix \
ash_postgres ash_authentication ash_authentication_phoenix \
ash_admin live_debugger --auth-strategy magic_link --yes \
&& mix ash.setup
sh <(curl 'https://ash-hq.org/install/test_new?install=phoenix') \
&& cd test_new && mix igniter.install ash ash_phoenix \
ash_postgres ash_authentication ash_authentication_phoenix \
ash_admin live_debugger --auth-strategy magic_link --yes \
&& mix ash.setup
Elixir is already installed ✓

Installing igniter_new archive...
Resolving Hex dependencies...
Resolution completed in 0.011s
New:
igniter_new 0.5.24
* Getting igniter_new (Hex package)
All dependencies are up to date
Compiling 5 files (.ex)
Generated igniter_new app
Generated archive "igniter_new-0.5.24.ez" with MIX_ENV=prod
* creating /Users/sam/.asdf/installs/elixir/1.18.3/.mix/archives/igniter_new-0.5.24
Resolving Hex dependencies...
Resolution completed in 0.009s
New:
phx_new 1.7.21
* Getting phx_new (Hex package)
All dependencies are up to date
Compiling 11 files (.ex)
Generated phx_new app
Generated archive "phx_new-1.7.21.ez" with MIX_ENV=prod
* creating /Users/sam/.asdf/installs/elixir/1.18.3/.mix/archives/phx_new-1.7.21
Elixir is already installed ✓

Installing igniter_new archive...
Resolving Hex dependencies...
Resolution completed in 0.011s
New:
igniter_new 0.5.24
* Getting igniter_new (Hex package)
All dependencies are up to date
Compiling 5 files (.ex)
Generated igniter_new app
Generated archive "igniter_new-0.5.24.ez" with MIX_ENV=prod
* creating /Users/sam/.asdf/installs/elixir/1.18.3/.mix/archives/igniter_new-0.5.24
Resolving Hex dependencies...
Resolution completed in 0.009s
New:
phx_new 1.7.21
* Getting phx_new (Hex package)
All dependencies are up to date
Compiling 11 files (.ex)
Generated phx_new app
Generated archive "phx_new-1.7.21.ez" with MIX_ENV=prod
* creating /Users/sam/.asdf/installs/elixir/1.18.3/.mix/archives/phx_new-1.7.21
Creating new Elixir project 'test_new' with the following packages:
* creating test_new/lib/test_new/application.ex
* creating test_new/lib/test_new.ex
* creating test_new/lib/test_new_web/controllers/error_json.ex
* creating test_new/lib/test_new_web/endpoint.ex
* creating test_new/lib/test_new_web/router.ex
* creating test_new/lib/test_new_web/telemetry.ex
* creating test_new/lib/test_new_web.ex
* creating test_new/mix.exs
* creating test_new/README.md
* creating test_new/.formatter.exs
* creating test_new/.gitignore
* creating test_new/test/support/conn_case.ex
* creating test_new/test/test_helper.exs
* creating test_new/test/test_new_web/controllers/error_json_test.exs
* creating test_new/lib/test_new/repo.ex
* creating test_new/priv/repo/migrations/.formatter.exs
* creating test_new/priv/repo/seeds.exs
* creating test_new/test/support/data_case.ex
* creating test_new/lib/test_new_web/controllers/error_html.ex
* creating test_new/test/test_new_web/controllers/error_html_test.exs
* creating test_new/lib/test_new_web/components/core_components.ex
* creating test_new/lib/test_new_web/controllers/page_controller.ex
* creating test_new/lib/test_new_web/controllers/page_html.ex
* creating test_new/lib/test_new_web/controllers/page_html/home.html.heex
* creating test_new/test/test_new_web/controllers/page_controller_test.exs
* creating test_new/lib/test_new_web/components/layouts/root.html.heex
* creating test_new/lib/test_new_web/components/layouts/app.html.heex
* creating test_new/lib/test_new_web/components/layouts.ex
* creating test_new/priv/static/images/logo.svg
* creating test_new/lib/test_new/mailer.ex
* creating test_new/lib/test_new_web/gettext.ex
* creating test_new/priv/gettext/en/LC_MESSAGES/errors.po
* creating test_new/priv/gettext/errors.pot
* creating test_new/priv/static/robots.txt
Creating new Elixir project 'test_new' with the following packages:
* creating test_new/lib/test_new/application.ex
* creating test_new/lib/test_new.ex
* creating test_new/lib/test_new_web/controllers/error_json.ex
* creating test_new/lib/test_new_web/endpoint.ex
* creating test_new/lib/test_new_web/router.ex
* creating test_new/lib/test_new_web/telemetry.ex
* creating test_new/lib/test_new_web.ex
* creating test_new/mix.exs
* creating test_new/README.md
* creating test_new/.formatter.exs
* creating test_new/.gitignore
* creating test_new/test/support/conn_case.ex
* creating test_new/test/test_helper.exs
* creating test_new/test/test_new_web/controllers/error_json_test.exs
* creating test_new/lib/test_new/repo.ex
* creating test_new/priv/repo/migrations/.formatter.exs
* creating test_new/priv/repo/seeds.exs
* creating test_new/test/support/data_case.ex
* creating test_new/lib/test_new_web/controllers/error_html.ex
* creating test_new/test/test_new_web/controllers/error_html_test.exs
* creating test_new/lib/test_new_web/components/core_components.ex
* creating test_new/lib/test_new_web/controllers/page_controller.ex
* creating test_new/lib/test_new_web/controllers/page_html.ex
* creating test_new/lib/test_new_web/controllers/page_html/home.html.heex
* creating test_new/test/test_new_web/controllers/page_controller_test.exs
* creating test_new/lib/test_new_web/components/layouts/root.html.heex
* creating test_new/lib/test_new_web/components/layouts/app.html.heex
* creating test_new/lib/test_new_web/components/layouts.ex
* creating test_new/priv/static/images/logo.svg
* creating test_new/lib/test_new/mailer.ex
* creating test_new/lib/test_new_web/gettext.ex
* creating test_new/priv/gettext/en/LC_MESSAGES/errors.po
* creating test_new/priv/gettext/errors.pot
* creating test_new/priv/static/robots.txt
* creating test_new/priv/static/favicon.ico
* creating test_new/assets/js/app.js
* creating test_new/assets/vendor/topbar.js
* creating test_new/assets/css/app.css
* creating test_new/assets/tailwind.config.js
* running mix deps.get
* running mix assets.setup
* running mix deps.compile
* creating test_new/priv/static/favicon.ico
* creating test_new/assets/js/app.js
* creating test_new/assets/vendor/topbar.js
* creating test_new/assets/css/app.css
* creating test_new/assets/tailwind.config.js
* running mix deps.get
* running mix assets.setup
* running mix deps.compile
We are almost there! The following steps are missing:

$ cd test_new

Then configure your database in config/dev.exs and run:

$ mix ecto.create

Start your Phoenix app with:

$ mix phx.server

You can also run your app inside IEx (Interactive Elixir) as:

$ iex -S mix phx.server

Fetching and compiling dependencies ✔
Updating project's igniter dependency ✔
checking for igniter in project ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
...
We are almost there! The following steps are missing:

$ cd test_new

Then configure your database in config/dev.exs and run:

$ mix ecto.create

Start your Phoenix app with:

$ mix phx.server

You can also run your app inside IEx (Interactive Elixir) as:

$ iex -S mix phx.server

Fetching and compiling dependencies ✔
Updating project's igniter dependency ✔
checking for igniter in project ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
setting up igniter ✔
compiling igniter ✔
...
Dropping elixir/erlang versions doesn't resolve the issue
ZachDaniel
ZachDaniel3w ago
Strange... so it happens when you run that first command? Try removing all of the install calls Just the --with phx.new
ieatkittens
ieatkittensOP3w ago
You mean like this?
sh <(curl 'https://ash-hq.org/install/test_new?install=phoenix')
sh <(curl 'https://ash-hq.org/install/test_new?install=phoenix')
no igniter installs? ^ That command completes, but if I run igniter after that it goes into it's endless loop (IE, either mix igniter.install with no libraries or mix igniter.install ash)
ZachDaniel
ZachDaniel3w ago
Okay now add --verbose to that The install task And see if you get anything
ieatkittens
ieatkittensOP3w ago
Same loop as before:
mix igniter.install ash --verbose
Updating project's igniter dependency:
Updating project's igniter dependency: ✔
checking for igniter in project:
checking for igniter in project: ✔
compiling igniter:
===> Analyzing applications...
===> Compiling telemetry
===> Analyzing applications...
===> Compiling telemetry_poller
compiling igniter: ✔
setting up igniter:
setting up igniter: ✔
compiling igniter:
mix igniter.install ash --verbose
Updating project's igniter dependency:
Updating project's igniter dependency: ✔
checking for igniter in project:
checking for igniter in project: ✔
compiling igniter:
===> Analyzing applications...
===> Compiling telemetry
===> Analyzing applications...
===> Compiling telemetry_poller
compiling igniter: ✔
setting up igniter:
setting up igniter: ✔
compiling igniter:
ZachDaniel
ZachDaniel3w ago
What on earth Is there anything at all strange about your setup that could point to an issue?
ieatkittens
ieatkittensOP3w ago
Not to my knowledge! I am super familiar with elixir/Phoenix and I do development on this laptop for that all the time I have another MacBook that is slightly different (m1 max vs m1, Sonoma vs Sequoia) and it works fine there I am upgrading my other laptop to sequoia to see if that makes a difference.. I upgraded my x-code command line tools, restarted, and it works now 🤷‍♂️
ZachDaniel
ZachDaniel3w ago
What on earth...
ieatkittens
ieatkittensOP3w ago
Well hopefully if anyone else experiences this, they find this thread and it saves them the troubleshooting 😅

Did you find this page helpful?