ITM007

ITM007

Phoenix 1.7

I am new to elixir and am working through the Elixir Phoenix Docs, while following this https://hexdocs.pm/phoenix/mix_phx_gen_auth.html. But I am getting an error when running the tests once the auth is generated. This is done with postgres, I get the same error when using sqlite.

Steps to reproduce:

  • Create new phx project
  • Install dependencies and create database
  • mix test (5 or 5 test pass)
  • mix phx.gen.auth Accounts User users
  • mix deps.get
  • mix ecto.setup
  • mix test (30 tests fail of 128)

Error:

 29) test update email form renders errors with invalid data (phx-change) (MyprojectWeb.UserSettingsLiveTest)
     test/myproject_web/live/user_settings_live_test.exs:52
     ** (KeyError) key :name not found in: %{
       __changed__: nil,
       __given__: %{
         __changed__: nil,
         field: %Phoenix.HTML.FormField{
           id: "user_email",
           name: "user[email]",
           errors: [],
           field: :email,
           form: %Phoenix.HTML.Form{
             source: #Ecto.Changeset<
               action: nil,
               changes: %{},
               errors: [email: {"did not change", []}],
               data: #Myproject.Accounts.User<>,
               valid?: false
             >,
             impl: Phoenix.HTML.FormData.Ecto.Changeset,
             id: "user",
             name: "user",
             data: #Myproject.Accounts.User<
               __meta__: #Ecto.Schema.Metadata<:loaded, "users">,
               id: 58,
               email: "user-576460752303416959@example.com",
               confirmed_at: nil,
               inserted_at: ~N[2024-05-05 18:24:05],
               updated_at: ~N[2024-05-05 18:24:05],
               ...
             >,
             hidden: [id: 58],
             params: %{},
             errors: [],
             options: [method: "put"],
             index: nil,
             action: nil
           },
           value: "user-576460752303416959@example.com"
         },
         label: "Email",
         type: "email"
       },
       field: %Phoenix.HTML.FormField{
         id: "user_email",
         name: "user[email]",
         errors: [],
         field: :email,
         form: %Phoenix.HTML.Form{
           source: #Ecto.Changeset<
             action: nil,
             changes: %{},
             errors: [email: {"did not change", []}],
             data: #Myproject.Accounts.User<>,
             valid?: false
           >,
           impl: Phoenix.HTML.FormData.Ecto.Changeset,
           id: "user",
           name: "user",
           data: #Myproject.Accounts.User<
             __meta__: #Ecto.Schema.Metadata<:loaded, "users">,
             id: 58,
             email: "user-576460752303416959@example.com",
             confirmed_at: nil,
             inserted_at: ~N[2024-05-05 18:24:05],
             updated_at: ~N[2024-05-05 18:24:05],
             ...
           >,
           hidden: [id: 58],
           params: %{},
           errors: [],
           options: [method: "put"],
           index: nil,
           action: nil
         },
         value: "user-576460752303416959@example.com"
       },
       inner_block: [],
       label: "Email",
       multiple: false,
       prompt: nil,
       rest: %{required: true},
       type: "email"
     }
     stacktrace:
       (myproject 0.1.0) lib/myproject_web/components/core_components.ex:350: anonymous fn/2 in MyprojectWeb.CoreComponents."input (overridable 1)"/1
       (myproject 0.1.0) /home/itm/Code/myproject/lib/myproject_web/live/user_settings_live.ex:21: MyprojectWeb.UserSettingsLive.render/1
       (elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
       (elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
       (elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
       (elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
       (elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
       (elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3



 30) test update email form renders errors with invalid data (phx-submit) (MyprojectWeb.UserSettingsLiveTest)
     test/myproject_web/live/user_settings_live_test.exs:68
     ** (KeyError) key :name not found in: %{
       __changed__: nil,
       __given__: %{
         __changed__: nil,
         field: %Phoenix.HTML.FormField{
           id: "user_email",
           name: "user[email]",
           errors: [],
           field: :email,
           form: %Phoenix.HTML.Form{
             source: #Ecto.Changeset<
               action: nil,
               changes: %{},
               errors: [email: {"did not change", []}],
               data: #Myproject.Accounts.User<>,
               valid?: false
             >,
             impl: Phoenix.HTML.FormData.Ecto.Changeset,
             id: "user",
             name: "user",
             data: #Myproject.Accounts.User<
               __meta__: #Ecto.Schema.Metadata<:loaded, "users">,
               id: 59,
               email: "user-576460752303418878@example.com",
               confirmed_at: nil,
               inserted_at: ~N[2024-05-05 18:24:05],
               updated_at: ~N[2024-05-05 18:24:05],
               ...
             >,
             hidden: [id: 59],
             params: %{},
             errors: [],
             options: [method: "put"],
             index: nil,
             action: nil
           },
           value: "user-576460752303418878@example.com"
         },
         label: "Email",
         type: "email"
       },
       field: %Phoenix.HTML.FormField{
         id: "user_email",
         name: "user[email]",
         errors: [],
         field: :email,
         form: %Phoenix.HTML.Form{
           source: #Ecto.Changeset<
             action: nil,
             changes: %{},
             errors: [email: {"did not change", []}],
             data: #Myproject.Accounts.User<>,
             valid?: false
           >,
           impl: Phoenix.HTML.FormData.Ecto.Changeset,
           id: "user",
           name: "user",
           data: #Myproject.Accounts.User<
             __meta__: #Ecto.Schema.Metadata<:loaded, "users">,
             id: 59,
             email: "user-576460752303418878@example.com",
             confirmed_at: nil,
             inserted_at: ~N[2024-05-05 18:24:05],
             updated_at: ~N[2024-05-05 18:24:05],
             ...
           >,
           hidden: [id: 59],
           params: %{},
           errors: [],
           options: [method: "put"],
           index: nil,
           action: nil
         },
         value: "user-576460752303418878@example.com"
       },
       inner_block: [],
       label: "Email",
       multiple: false,
       prompt: nil,
       rest: %{required: true},
       type: "email"
     }
     stacktrace:
       (myproject 0.1.0) lib/myproject_web/components/core_components.ex:350: anonymous fn/2 in MyprojectWeb.CoreComponents."input (overridable 1)"/1
       (myproject 0.1.0) /home/itm/Code/myproject/lib/myproject_web/live/user_settings_live.ex:21: MyprojectWeb.UserSettingsLive.render/1
       (elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
       (elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
       (elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
       (elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
       (elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
       (phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
       (elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3

.......................................................
Finished in 0.7 seconds (0.5s async, 0.2s sync)
128 tests, 30 failures

Randomized with seed 825518

Dependencies:

 defp deps do
   25    ╎ [
   24    ╎ ╎ {:bcrypt_elixir, "~> 3.0"},
   23    ╎ ╎ {:phoenix, "~> 1.7.0-rc.1", override: true},
   22    ╎ ╎ {:phoenix_ecto, "~> 4.4"},
   21    ╎ ╎ {:ecto_sql, "~> 3.6"},
   20    ╎ ╎ {:postgrex, ">= 0.0.0"},
   19    ╎ ╎ {:phoenix_html, "~> 3.0"},
   18    ╎ ╎ {:phoenix_live_reload, "~> 1.2", only: :dev},
   17    ╎ ╎ {:phoenix_live_view, "~> 0.18.3"},
   16    ╎ ╎ {:heroicons, "~> 0.5"},
   15    ╎ ╎ {:floki, ">= 0.30.0", only: :test},
   14    ╎ ╎ {:phoenix_live_dashboard, "~> 0.7.2"},
   13    ╎ ╎ {:esbuild, "~> 0.5", runtime: Mix.env() == :dev},
   12    ╎ ╎ {:tailwind, "~> 0.1.8", runtime: Mix.env() == :dev},
   11    ╎ ╎ {:swoosh, "~> 1.3"},
   10    ╎ ╎ {:finch, "~> 0.13"},
    9    ╎ ╎ {:telemetry_metrics, "~> 0.6"},
    8    ╎ ╎ {:telemetry_poller, "~> 1.0"},
    7    ╎ ╎ {:gettext, "~> 0.20"},
    6    ╎ ╎ {:jason, "~> 1.2"},
    5    ╎ ╎ {:plug_cowboy, "~> 2.5"}
    4    ╎ ]
    3    end

I am using NixOS, so I am guessing I am missing a dependency. Or maybe I may just not be following the documentation correctly? Any help would be appreciated.

Thanks! :smiley:

Showing Posts 1 to 6

al2o3cr

al2o3cr

What error? The specific message has been clipped off the top of the log you posted, which makes this into a guessing game.

ITM007

ITM007 OP

I apologize, I updated the questions with the fill error.

al2o3cr

al2o3cr

Make 100% sure that the various pieces of Phoenix are on the correct version.

The error you’re seeing is what I’d expect if an old core_components.ex was being used with a too-new version of phx.gen.auth:

See also previous discussion: KeyError at GET /users/register key :name not found in: %{ - #7 by experimentix

josevalim

josevalim

Creator of Elixir

In particular, make sure to run mix archive.install hex phx_new to get the latest.

ITM007

ITM007 OP

This was the exact problem, not sure how i ended up using different versions of phoenix. Thank you for the help.

ITM007

ITM007 OP

Thank you, this command upgraded phoenix and solved the problem.

— All posts loaded —

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
achenet
Hello, I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind. However, when I launch mix phx.server, I get an error...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
mnkhod
So i have been using ash framework for a while and i love it. However currently the issue im having with ash framework is the error handl...
New
Cxx-mlr
I’m working on a small exercise involving update_in/3, and I came up with this solution: data = %{ name: "Periodic Table", category:...
New

Other Trending Topics Top

Potions
A new screencast on live LiveView updates with PubSub, the Oban Web dashboard, and smarter retries. Part 2 of 2. Screencast + full walkth...
New
GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews