Can't spin up `hanami dev` on 2.2.0.beta1

Just some system info and a console log dump. Not sure what the exact problem is here, but hanami dev SIGTERM’s outright on my system.

❯ ruby -v
ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [arm64-darwin23]

I run hanami dev and this is what I get

❯ be hanami dev
/opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-core-1.0.1/lib/dry/core/deprecations.rb:3: warning: logger was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
You can add logger to your Gemfile or gemspec to silence this warning.
/opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/json/generic_object.rb:2: warning: ostruct was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
You can add ostruct to your Gemfile or gemspec to silence this warning.
15:55:03 web.1    | started with pid 1494
15:55:03 assets.1 | started with pid 1495
15:55:04 web.1    | /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-core-1.0.1/lib/dry/core/deprecations.rb:3: warning: logger was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
15:55:04 assets.1 | /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-core-1.0.1/lib/dry/core/deprecations.rb:3: warning: logger was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
15:55:04 web.1    | You can add logger to your Gemfile or gemspec to silence this warning.
15:55:04 assets.1 | You can add logger to your Gemfile or gemspec to silence this warning.
15:55:04 assets.1 | /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/json/generic_object.rb:2: warning: ostruct was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
15:55:04 web.1    | /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/json/generic_object.rb:2: warning: ostruct was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
15:55:04 assets.1 | You can add ostruct to your Gemfile or gemspec to silence this warning.
15:55:04 web.1    | You can add ostruct to your Gemfile or gemspec to silence this warning.
15:55:04 assets.1 | bundler: failed to load command: hanami (/opt/homebrew/lib/ruby/gems/3.3.0/bin/hanami)
15:55:04 assets.1 | /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/provider/source.rb:8:in `initialize': missing keyword: :slice (ArgumentError)
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-configurable-1.2.0/lib/dry/configurable/instance_methods.rb:17:in `initialize'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-system-1.1.0.beta1/lib/dry/system/provider.rb:139:in `new'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-system-1.1.0.beta1/lib/dry/system/provider.rb:139:in `initialize'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-system-1.1.0.beta1/lib/dry/system/provider_registrar.rb:201:in `new'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-system-1.1.0.beta1/lib/dry/system/provider_registrar.rb:201:in `build_provider'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-system-1.1.0.beta1/lib/dry/system/provider_registrar.rb:72:in `register_provider'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-system-1.1.0.beta1/lib/dry/system/container.rb:274:in `register_provider'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/slice.rb:527:in `register_provider'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/slice.rb:930:in `prepare_container_providers'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/slice.rb:852:in `prepare_all'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/app.rb:108:in `prepare_all'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/slice.rb:807:in `prepare_slice'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/slice.rb:274:in `prepare'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami.rb:204:in `prepare'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/prepare.rb:5:in `<top (required)>'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `require'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `block (2 levels) in replace_require'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in `require'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-cli-2.2.0.beta1/lib/hanami/cli/commands/app/command.rb:62:in `app'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-cli-2.2.0.beta1/lib/hanami/cli/commands/app/assets/command.rb:34:in `initialize'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-cli-2.2.0.beta1/lib/hanami/cli/command.rb:30:in `new'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-cli-2.2.0.beta1/lib/hanami/cli/command.rb:30:in `new'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-cli-1.1.0/lib/dry/cli.rb:147:in `build_command'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-cli-1.1.0/lib/dry/cli.rb:141:in `parse'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-cli-1.1.0/lib/dry/cli.rb:113:in `perform_registry'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-cli-1.1.0/lib/dry/cli.rb:65:in `call'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-cli-2.2.0.beta1/exe/hanami:11:in `<top (required)>'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/bin/hanami:25:in `load'
15:55:04 assets.1 | 	from /opt/homebrew/lib/ruby/gems/3.3.0/bin/hanami:25:in `<top (required)>'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundler/cli/exec.rb:58:in `load'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundler/cli/exec.rb:58:in `kernel_load'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundler/cli/exec.rb:23:in `run'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundler/cli.rb:455:in `exec'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundler/cli.rb:35:in `dispatch'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundler/cli.rb:29:in `start'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/gems/3.3.0/gems/bundler-2.5.18/exe/bundle:28:in `block in <top (required)>'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundler/friendly_errors.rb:117:in `with_friendly_errors'
15:55:04 assets.1 | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/gems/3.3.0/gems/bundler-2.5.18/exe/bundle:20:in `<top (required)>'
15:55:04 assets.1 | 	from /opt/homebrew/opt/ruby/bin/bundle:25:in `load'
15:55:04 assets.1 | 	from /opt/homebrew/opt/ruby/bin/bundle:25:in `<main>'
15:55:04 web.1    | /opt/homebrew/lib/ruby/gems/3.3.0/gems/guard-2.18.1/lib/guard.rb:2: warning: logger was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
15:55:04 web.1    | You can add logger to your Gemfile or gemspec to silence this warning.
15:55:04 web.1    | /opt/homebrew/lib/ruby/gems/3.3.0/gems/guard-2.18.1/lib/guard/cli.rb:5: warning: ostruct was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
15:55:04 web.1    | You can add ostruct to your Gemfile or gemspec to silence this warning.
15:55:04 web.1    | 15:55:04 - INFO - Using Guardfile at /Users/aratinga/dev/bookshelf/Guardfile.
15:55:04 web.1    | 15:55:04 - INFO - Puma starting on port 2300 in development environment.
15:55:04 web.1    | 15:55:04 - INFO - Guard is now watching at '/Users/aratinga/dev/bookshelf'
15:55:04 web.1    | Puma starting in single mode...
15:55:04 web.1    | * Puma version: 6.4.2 (ruby 3.3.5-p100) ("The Eagle of Durango")
15:55:04 web.1    | *  Min threads: 5
15:55:04 web.1    | *  Max threads: 5
15:55:04 web.1    | *  Environment: development
15:55:04 web.1    | *          PID: 1503
15:55:04 web.1    | /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-core-1.0.1/lib/dry/core/deprecations.rb:3: warning: logger was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
15:55:04 web.1    | You can add logger to your Gemfile or gemspec to silence this warning.
15:55:04 web.1    | /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/json/generic_object.rb:2: warning: ostruct was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
15:55:04 web.1    | You can add ostruct to your Gemfile or gemspec to silence this warning.
15:55:04 web.1    | ! Unable to load application: ArgumentError: missing keyword: :slice
15:55:04 web.1    | /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/provider/source.rb:8:in `initialize': missing keyword: :slice (ArgumentError)
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-configurable-1.2.0/lib/dry/configurable/instance_methods.rb:17:in `initialize'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-system-1.1.0.beta1/lib/dry/system/provider.rb:139:in `new'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-system-1.1.0.beta1/lib/dry/system/provider.rb:139:in `initialize'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-system-1.1.0.beta1/lib/dry/system/provider_registrar.rb:201:in `new'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-system-1.1.0.beta1/lib/dry/system/provider_registrar.rb:201:in `build_provider'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-system-1.1.0.beta1/lib/dry/system/provider_registrar.rb:72:in `register_provider'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/dry-system-1.1.0.beta1/lib/dry/system/container.rb:274:in `register_provider'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/slice.rb:527:in `register_provider'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/slice.rb:930:in `prepare_container_providers'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/slice.rb:852:in `prepare_all'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/app.rb:108:in `prepare_all'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/slice.rb:807:in `prepare_slice'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/slice.rb:274:in `prepare'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/slice.rb:328:in `boot'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami.rb:214:in `boot'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/hanami-2.2.0.beta1/lib/hanami/boot.rb:5:in `<top (required)>'
15:55:04 web.1    | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `require'
15:55:04 web.1    | 	from /opt/homebrew/Cellar/ruby/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `block (2 levels) in replace_require'
15:55:04 web.1    | 	from config.ru:3:in `block in <main>'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/rack-2.2.9/lib/rack/builder.rb:116:in `eval'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/rack-2.2.9/lib/rack/builder.rb:116:in `new_from_string'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/rack-2.2.9/lib/rack/builder.rb:105:in `load_file'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/rack-2.2.9/lib/rack/builder.rb:66:in `parse_file'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/configuration.rb:368:in `load_rackup'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/configuration.rb:290:in `app'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/runner.rb:162:in `load_and_bind'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/single.rb:44:in `run'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/launcher.rb:194:in `run'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/cli.rb:75:in `run'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/gems/puma-6.4.2/bin/puma:10:in `<top (required)>'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/bin/puma:25:in `load'
15:55:04 web.1    | 	from /opt/homebrew/lib/ruby/gems/3.3.0/bin/puma:25:in `<main>'
15:55:05 assets.1 | exited with code 1
15:55:05 system   | sending SIGTERM to all processes
15:55:05 web.1    | terminated by SIGTERM

Hi @Aratinga, thank you for trying the beta, and for sharing this issue!

I just tried to replicate this issue locally, by doing:

$ gem install hanami hanami-cli --pre
$ hanami new sunday_beta
$ cd sunday_beta
$ bundle exec hanami dev

And in my case, it seemed to work fine:

$ bundle exec hanami dev
23:07:36 web.1    | started with pid 46479
23:07:36 assets.1 | started with pid 46480
23:07:36 assets.1 | [sunday_beta] [watch] build finished, watching for changes...
23:07:37 web.1    | 23:07:37 - INFO - Using Guardfile at /Users/tim/Source/scratch/sunday_beta/Guardfile.
23:07:37 web.1    | 23:07:37 - INFO - Puma starting on port 2300 in development environment.
23:07:37 web.1    | 23:07:37 - INFO - Guard is now watching at '/Users/tim/Source/scratch/sunday_beta'
23:07:37 web.1    | Puma starting in single mode...
23:07:37 web.1    | * Puma version: 6.4.2 (ruby 3.3.0-p0) ("The Eagle of Durango")
23:07:37 web.1    | *  Min threads: 5
23:07:37 web.1    | *  Max threads: 5
23:07:37 web.1    | *  Environment: development
23:07:37 web.1    | *          PID: 46487
23:07:38 web.1    | * Listening on http://0.0.0.0:2300
23:07:38 web.1    | * Starting control server on http://127.0.0.1:9293
23:07:38 web.1    | * Starting control server on http://[::1]:9293
23:07:38 web.1    | Use Ctrl-C to stop

Is there any chance you could share the Gemfile and Gemfile.lock for this project of yours?

I also just installed Ruby 3.3.5 and tried with the version of Ruby. It also worked there. (Though I note all the extra deprecation warnings that show on 3.3.5; we’ll make sure we handle any of those within our control).

Absolutely! Thanks for the reply.

Gemfile

# frozen_string_literal: true

source "https://rubygems.org"

gem "hanami", "~> 2.2.0.beta"
gem "hanami-assets", "~> 2.2.0.beta"
gem "hanami-controller", "~> 2.2.0.beta"
gem "hanami-db", "~> 2.2.0.beta"
gem "hanami-router", "~> 2.2.0.beta"
gem "hanami-validations", "~> 2.2.0.beta"
gem "hanami-view", "~> 2.2.0.beta"

gem "dry-types", "~> 1.0", ">= 1.6.1"
gem "dry-operation", github: "dry-rb/dry-operation"
gem "puma"
gem "rake"
gem "sqlite3"

group :development do
  gem "hanami-webconsole", "~> 2.2.0.beta"
  gem "guard-puma"
end

group :development, :test do
  gem "dotenv"
end

group :cli, :development do
  gem "hanami-reloader", "~> 2.2.0.beta"
end

group :cli, :development, :test do
  gem "hanami-rspec", "~> 2.2.0.beta"
end

group :test do
  gem "capybara"
  gem "rack-test"
end

Gemfile.lock

GIT
  remote: https://github.com/dry-rb/dry-operation.git
  revision: 92cdde9a9fd04e87c4b5d6c070494f444f104139
  specs:
    dry-operation (0.0.0)
      dry-monads (~> 1.6)
      zeitwerk (~> 2.6)

GEM
  remote: https://rubygems.org/
  specs:
    addressable (2.8.7)
      public_suffix (>= 2.0.2, < 7.0)
    better_errors (2.10.1)
      erubi (>= 1.0.0)
      rack (>= 0.9.0)
      rouge (>= 1.0.0)
    bigdecimal (3.1.8)
    binding_of_caller (1.0.1)
      debug_inspector (>= 1.2.0)
    capybara (3.40.0)
      addressable
      matrix
      mini_mime (>= 0.1.3)
      nokogiri (~> 1.11)
      rack (>= 1.6.0)
      rack-test (>= 0.6.3)
      regexp_parser (>= 1.5, < 3.0)
      xpath (~> 3.2)
    coderay (1.1.3)
    concurrent-ruby (1.3.4)
    debug_inspector (1.2.0)
    diff-lcs (1.5.1)
    dotenv (3.1.2)
    dry-auto_inject (1.0.1)
      dry-core (~> 1.0)
      zeitwerk (~> 2.6)
    dry-cli (1.1.0)
    dry-configurable (1.2.0)
      dry-core (~> 1.0, < 2)
      zeitwerk (~> 2.6)
    dry-core (1.0.1)
      concurrent-ruby (~> 1.0)
      zeitwerk (~> 2.6)
    dry-events (1.0.1)
      concurrent-ruby (~> 1.0)
      dry-core (~> 1.0, < 2)
    dry-files (1.1.0)
    dry-inflector (1.1.0)
    dry-initializer (3.1.1)
    dry-logger (1.0.4)
    dry-logic (1.5.0)
      concurrent-ruby (~> 1.0)
      dry-core (~> 1.0, < 2)
      zeitwerk (~> 2.6)
    dry-monads (1.6.0)
      concurrent-ruby (~> 1.0)
      dry-core (~> 1.0, < 2)
      zeitwerk (~> 2.6)
    dry-monitor (1.0.1)
      dry-configurable (~> 1.0, < 2)
      dry-core (~> 1.0, < 2)
      dry-events (~> 1.0, < 2)
    dry-schema (1.13.4)
      concurrent-ruby (~> 1.0)
      dry-configurable (~> 1.0, >= 1.0.1)
      dry-core (~> 1.0, < 2)
      dry-initializer (~> 3.0)
      dry-logic (>= 1.4, < 2)
      dry-types (>= 1.7, < 2)
      zeitwerk (~> 2.6)
    dry-struct (1.6.0)
      dry-core (~> 1.0, < 2)
      dry-types (>= 1.7, < 2)
      ice_nine (~> 0.11)
      zeitwerk (~> 2.6)
    dry-system (1.1.0.beta1)
      dry-auto_inject (~> 1.0)
      dry-configurable (~> 1.0)
      dry-core (~> 1.0)
      dry-inflector (~> 1.0)
    dry-transformer (1.0.1)
      zeitwerk (~> 2.6)
    dry-types (1.7.2)
      bigdecimal (~> 3.0)
      concurrent-ruby (~> 1.0)
      dry-core (~> 1.0)
      dry-inflector (~> 1.0)
      dry-logic (~> 1.4)
      zeitwerk (~> 2.6)
    dry-validation (1.10.0)
      concurrent-ruby (~> 1.0)
      dry-core (~> 1.0, < 2)
      dry-initializer (~> 3.0)
      dry-schema (>= 1.12, < 2)
      zeitwerk (~> 2.6)
    erubi (1.13.0)
    ffi (1.17.0-aarch64-linux-gnu)
    ffi (1.17.0-aarch64-linux-musl)
    ffi (1.17.0-arm-linux-gnu)
    ffi (1.17.0-arm-linux-musl)
    ffi (1.17.0-arm64-darwin)
    ffi (1.17.0-x86-linux-gnu)
    ffi (1.17.0-x86-linux-musl)
    ffi (1.17.0-x86_64-darwin)
    ffi (1.17.0-x86_64-linux-gnu)
    ffi (1.17.0-x86_64-linux-musl)
    formatador (1.1.0)
    guard (2.18.1)
      formatador (>= 0.2.4)
      listen (>= 2.7, < 4.0)
      lumberjack (>= 1.0.12, < 2.0)
      nenv (~> 0.1)
      notiffany (~> 0.0)
      pry (>= 0.13.0)
      shellany (~> 0.0)
      thor (>= 0.18.1)
    guard-compat (1.2.1)
    guard-puma (0.8.1)
      guard (~> 2.14)
      guard-compat (~> 1.2)
      puma (>= 4.0, < 7)
    hanami (2.2.0.beta1)
      bundler (>= 1.16, < 3)
      dry-configurable (~> 1.0, >= 1.2.0, < 2)
      dry-core (~> 1.0, < 2)
      dry-inflector (~> 1.0, >= 1.1.0, < 2)
      dry-logger (~> 1.0, < 2)
      dry-monitor (~> 1.0, >= 1.0.1, < 2)
      dry-system (= 1.1.0.beta1)
      hanami-cli (= 2.2.0.beta1)
      hanami-utils (~> 2.2.beta)
      zeitwerk (~> 2.6)
    hanami-assets (2.2.0.beta1)
      zeitwerk (~> 2.6)
    hanami-cli (2.2.0.beta1)
      bundler (~> 2.1)
      dry-cli (~> 1.0, >= 1.1.0)
      dry-files (~> 1.0, >= 1.0.2, < 2)
      dry-inflector (~> 1.0, < 2)
      rake (~> 13.0)
      zeitwerk (~> 2.6)
    hanami-controller (2.2.0.beta1)
      dry-configurable (~> 1.0, < 2)
      dry-core (~> 1.0)
      hanami-utils (~> 2.2.beta)
      rack (~> 2.0)
      zeitwerk (~> 2.6)
    hanami-db (2.2.0.beta1)
      rom (~> 5.3)
      rom-sql (~> 3.6, >= 3.6.4)
      zeitwerk (~> 2.6)
    hanami-reloader (2.2.0.beta1)
      hanami-cli (~> 2.2.beta)
      zeitwerk (~> 2.6)
    hanami-router (2.2.0.beta1)
      mustermann (~> 3.0)
      mustermann-contrib (~> 3.0)
      rack (~> 2.0)
    hanami-rspec (2.2.0.beta1)
      hanami-cli (~> 2.2.beta)
      rake (~> 13.0)
      rspec (~> 3.12)
      zeitwerk (~> 2.6)
    hanami-utils (2.2.0.beta1)
      concurrent-ruby (~> 1.0)
      dry-core (~> 1.0, < 2)
      dry-transformer (~> 1.0, < 2)
    hanami-validations (2.2.0.beta1)
      dry-validation (>= 1.10, < 2)
      zeitwerk (~> 2.6.0)
    hanami-view (2.2.0.beta1)
      dry-configurable (~> 1.0)
      dry-core (~> 1.0)
      dry-inflector (~> 1.0, < 2)
      temple (~> 0.10.0, >= 0.10.2)
      tilt (~> 2.3)
      zeitwerk (~> 2.6)
    hanami-webconsole (2.2.0.beta1)
      better_errors (~> 2.10, >= 2.10.1)
      binding_of_caller (~> 1.0)
    hansi (0.2.1)
    ice_nine (0.11.2)
    listen (3.9.0)
      rb-fsevent (~> 0.10, >= 0.10.3)
      rb-inotify (~> 0.9, >= 0.9.10)
    lumberjack (1.2.10)
    matrix (0.4.2)
    method_source (1.1.0)
    mini_mime (1.1.5)
    mustermann (3.0.3)
      ruby2_keywords (~> 0.0.1)
    mustermann-contrib (3.0.3)
      hansi (~> 0.2.0)
      mustermann (= 3.0.3)
    nenv (0.3.0)
    nio4r (2.7.3)
    nokogiri (1.16.7-aarch64-linux)
      racc (~> 1.4)
    nokogiri (1.16.7-arm-linux)
      racc (~> 1.4)
    nokogiri (1.16.7-arm64-darwin)
      racc (~> 1.4)
    nokogiri (1.16.7-x86-linux)
      racc (~> 1.4)
    nokogiri (1.16.7-x86_64-darwin)
      racc (~> 1.4)
    nokogiri (1.16.7-x86_64-linux)
      racc (~> 1.4)
    notiffany (0.1.3)
      nenv (~> 0.1)
      shellany (~> 0.0)
    pry (0.14.2)
      coderay (~> 1.1)
      method_source (~> 1.0)
    public_suffix (6.0.1)
    puma (6.4.2)
      nio4r (~> 2.0)
    racc (1.8.1)
    rack (2.2.9)
    rack-test (2.1.0)
      rack (>= 1.3)
    rake (13.2.1)
    rb-fsevent (0.11.2)
    rb-inotify (0.11.1)
      ffi (~> 1.0)
    regexp_parser (2.9.2)
    rom (5.3.2)
      rom-changeset (~> 5.3, >= 5.3.0)
      rom-core (~> 5.3, >= 5.3.2)
      rom-repository (~> 5.3, >= 5.3.0)
    rom-changeset (5.3.0)
      dry-core (~> 1.0)
      rom-core (~> 5.3)
      transproc (~> 1.0, >= 1.1.0)
    rom-core (5.3.2)
      concurrent-ruby (~> 1.1)
      dry-configurable (~> 1.0)
      dry-core (~> 1.0)
      dry-inflector (~> 1.0)
      dry-initializer (~> 3.0, >= 3.0.1)
      dry-struct (~> 1.0)
      dry-types (~> 1.6)
      transproc (~> 1.0, >= 1.1.0)
    rom-repository (5.3.0)
      dry-core (~> 1.0)
      dry-initializer (~> 3.0, >= 3.0.1)
      rom-core (~> 5.3, >= 5.3.0)
    rom-sql (3.6.4)
      dry-core (~> 1.0)
      dry-types (~> 1.0)
      rom (~> 5.2, >= 5.2.1)
      sequel (>= 4.49)
    rouge (4.3.0)
    rspec (3.13.0)
      rspec-core (~> 3.13.0)
      rspec-expectations (~> 3.13.0)
      rspec-mocks (~> 3.13.0)
    rspec-core (3.13.1)
      rspec-support (~> 3.13.0)
    rspec-expectations (3.13.3)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.13.0)
    rspec-mocks (3.13.1)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.13.0)
    rspec-support (3.13.1)
    ruby2_keywords (0.0.5)
    sequel (5.84.0)
      bigdecimal
    shellany (0.0.1)
    sqlite3 (2.0.4-aarch64-linux-gnu)
    sqlite3 (2.0.4-aarch64-linux-musl)
    sqlite3 (2.0.4-arm-linux-gnu)
    sqlite3 (2.0.4-arm-linux-musl)
    sqlite3 (2.0.4-arm64-darwin)
    sqlite3 (2.0.4-x86-linux-gnu)
    sqlite3 (2.0.4-x86-linux-musl)
    sqlite3 (2.0.4-x86_64-darwin)
    sqlite3 (2.0.4-x86_64-linux-gnu)
    sqlite3 (2.0.4-x86_64-linux-musl)
    temple (0.10.3)
    thor (1.3.2)
    tilt (2.4.0)
    transproc (1.1.1)
    xpath (3.2.0)
      nokogiri (~> 1.8)
    zeitwerk (2.6.18)

PLATFORMS
  aarch64-linux-gnu
  aarch64-linux-musl
  arm-linux-gnu
  arm-linux-musl
  arm64-darwin
  x86-linux-gnu
  x86-linux-musl
  x86_64-darwin
  x86_64-linux-gnu
  x86_64-linux-musl

DEPENDENCIES
  capybara
  dotenv
  dry-operation!
  dry-types (~> 1.0, >= 1.6.1)
  guard-puma
  hanami (~> 2.2.0.beta)
  hanami-assets (~> 2.2.0.beta)
  hanami-controller (~> 2.2.0.beta)
  hanami-db (~> 2.2.0.beta)
  hanami-reloader (~> 2.2.0.beta)
  hanami-router (~> 2.2.0.beta)
  hanami-rspec (~> 2.2.0.beta)
  hanami-validations (~> 2.2.0.beta)
  hanami-view (~> 2.2.0.beta)
  hanami-webconsole (~> 2.2.0.beta)
  puma
  rack-test
  rake
  sqlite3

BUNDLED WITH
   2.5.18

I got around this. I think I had two conflicting things installed. I did a full wipe and now the server spins up just fine!