small medium large xlarge

The latest version of the book is P1.0, released 2 months ago. If you've bought a PDF of the book and would like to update it to this version (for free), visit your home page.

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: P1.0 (26-Nov-19)
PDF page: L4557
In the "Setting Up Category Seed Data" section, a sample IEx session executes this command: ```elixir Rumbl.Repo.insert! %Rumbl.Multimedia.Category{...more...
  • Reported in: B10.0 (28-Sep-19)
Paper page: 25

The word "Function" in the exception "UndefinedFunctionError" was missing a letter "c"--Jasmine Galang

  • Reported in: B10.0 (01-Oct-19)
PDF page: 26
The ebook the error complains: undefined function: HelloWeb.HelloView.render/2 (module HelloWeb.HelloView is not available) but in my termi...more...
  • Reported in: P1.0 (30-Oct-19)
PDF page: 47
At page 47, I run into a confusing part: Excerpt from the page With our user in place, let’s define our Accounts context. We will add a couple ...more...
  • Reported in: P1.0 (03-Dec-19)
PDF page: 55
Now, change your show.html.eex template to render it: <h1>Showing User</h1> <%= render "user.html", user: @user %> it must be : <%= render "use...more...
  • Reported in: P1.0 (20-Oct-19)
PDF page: 99
"By passing the :method option to link, Phoenix generates a form tag instead of an anchor tag. Links without a specified HTTP method will default to G...more...
  • Reported in: P1.0 (28-Oct-19)
PDF page: 99
Paper page: 83
warning: function Rumbl.Accounts.User.registration_changeset/2 is undefined or private. Did you mean one of: * register_changeset/2 As the...more...
  • Reported in: P1.0 (19-Oct-19)
PDF page: 121
Paper page: 121
Not Found The requested URL /titles/phoenix14/code/relationships/listings/rumbl/priv/repo/migratio ƒ 80513030504_add_category_id_to_video.change1.e...more...
  • Reported in: P1.0 (24-Oct-19)
PDF page: 124
Typo in iex sample such that output doesn't match input: iex> Rumbl.Repo.insert! %Rumbl.Multimedia.Category{name: "Test"} %Rumbl.Multimedia.Catego...more...
  • Reported in: P1.0 (22-Oct-19)
PDF page: 147
In the part of the page: Whether you knew it or not, Phoenix has already been generating default tests for you, such as test/rumbl_web/controllers/...more...
  • Reported in: P1.0 (22-Oct-19)
PDF page: 148
For take the exactly same errors like: 3 tests, 1 failure. It was needed to delete the files: video_controller_test.exs and multimedia_test.exs. --R...more...
  • Reported in: P1.0 (22-Oct-19)
PDF page: 152
In a synopsis of 3 separate failing tests, the same test is listed twice (testing a password that's too short). The username uniqueness test isn't men...more...
  • Reported in: B10.0 (06-Oct-19)
Paper page: 154
There is "...having a hardcoded valid email and password..." in the first paragraph, but we using usernames instead of emails to identify the user. Al...more...
  • Reported in: P1.0 (05-Nov-19)
PDF page: 155
assert [%Video{id: ^id1}, %Video{id: ^id2}] = Multimedia.list_videos() AFAIK there's no guarantee that the rows will be returned in any specific or...more...
  • Reported in: P1.0 (16-Oct-19)
PDF page: 163
I could be just me, but I had great difficulty getting through this code. This forum post describes my prob. Perhaps it could be made clearer, I don't...more...
  • Reported in: P1.0 (23-Oct-19)
PDF page: 166
The link for download the source code redirects to the first Programming Phoenix book and not to the actual version 1.4 of the book. So the correct ...more...
  • Reported in: P1.0 (24-Nov-19)
PDF page: 167
The code doesn't run as written until the setup function is added. This must happen later in the book. The tests kept failing in the authenticate_us...more...
  • Reported in: B10.0 (26-Sep-19)
PDF page: 171
Paper page: 189
The mix test command on pdf shows 9 tests, but should actually be 6. On the previous page, the number of tests is 2, and 4 were added, leading 6. This...more...
  • Reported in: P1.0 (04-Nov-19)
Paper page: 172
Page 172 contains copy regarding the length of time it takes to run the auth tests. I ran into slow tests by page 156 and was wondering if I'd screwe...more...
  • Reported in: B9.0 (09-Oct-19)
PDF page: 183
Paper page: 165
In Part I, Chapter 8, the tests don't seem to have been updated to reflect changes made progressively to the Multimedia context. One example is on th...more...
  • Reported in: B9.0 (10-Oct-19)
PDF page: 187
Paper page: 169
In the "setup", I needed to also assign ":current_user" to "nil", not just implement "bypass_through", since the pipeline doesn't (yet) add that expec...more...
  • Reported in: B9.0 (10-Oct-19)
PDF page: 187
Paper page: 169
The solution I suggested in a previous erratum for this page involved the missing key :current_user on conn.assigns. That solution changed the test, ...more...
  • Reported in: P1.0 (11-Oct-19)
PDF page: 189
Paper page: 173

Variable "owner" is unused in the last test (line 25 in listing)--Pavel Abanichev

  • Reported in: P1.0 (31-Oct-19)
PDF page: 202
Maybe is the version different that I use but the log is different on my server output logs for this: [info] CONNECTED TO RumblWeb.UserSocket in 216µ...more...
  • Reported in: P1.0 (04-Nov-19)
PDF page: 206
When I try to do an Annotation I get this error on console: TypeError: msgContainer is null I copy and paste the cody and the error continues.. f...more...
  • Reported in: P1.0 (04-Nov-19)
PDF page: 206
Sorry it was an error of mine rather use id on msg-container I put class. And fixed when I change for the correct id tag. The previous mistake was m...more...
  • Reported in: B10.0 (29-Sep-19)
PDF page: 210
About programming the token in app.html.eex, the code needed to be added, namely: "<script type="text/javascript" src="<%= Routes.static_url(@conn, )...more...
  • Reported in: B9.0 (20-Aug-19)
PDF page: 217
The first line of the scheduleMessages function uses scheduleTimer instead of schedulerTimer: wrong: clearTimeout(this.scheduleTimer) right: cl...more...
  • Reported in: P1.0 (29-Oct-19)
PDF page: 223
The private function on pg 223 for the auth controller assigns the token with a key :user_token. However, where the token is used on the client side (...more...
  • Reported in: P1.0 (13-Nov-19)
PDF page: 238
I'm using the Phoenix version Phoenix v1.4.10 and the 'Copying the Web Source Files' it wasn't necessary to do. All was in the place.--Romenig L. Dama...more...
  • Reported in: P1.0 (13-Nov-19)
PDF page: 238

I do a mistake, sorry. It needs to copy!--Romenig L. Damasio

  • Reported in: P1.0 (18-Nov-19)
PDF page: 253
Paper page: 239

$ mix test

This command fails as the config/test.ex file was not updated, some users may not have postgres as a users. --E S

  • Reported in: P1.0 (30-Nov-19)
PDF page: 293
In the parte before to test has: "Then we assert the socket has a user_id assigned and the join reply contains the previously creatrd annotations." ...more...
  • Reported in: P1.0 (30-Nov-19)
PDF page: 293
Sorry but if I try the test again sometimes the mix complains for this: mix test apps/rumbl_web/test/channels/video_channel_test.exs ==> rumbl_web ...more...
  • Reported in: B9.0 (31-Jul-19)
Paper page: 295
the mix test command at the bottom of the page intermittently produces an error: mix test test/rumbl_web/channels/video_channel_test.exs . Fini...more...
José Valim says: Good catch! Basically the Presence wants to query the DB and send updates but the test has shut down and there are no database connections. To fix this consistently, we would need to query the presence supervisor and ask all of its children to shutdown at the end of each test. But to do so, we will need to add a new API to Phoenix. If you can open up an issue in Phoenix issues tracker, it would be extra helpful. Thank you!
  • Reported in: P1.0 (23-Nov-19)
PDF page: 300
Paper page: 287
Instead of loading the stubbed HTTP client in ```test_helper.exs, I'd suggest adding it to test/support/http_client.ex and adding the test/support to ...more...
  • Reported in: P1.0 (24-Nov-19)
PDF page: 320
Paper page: 307
The page ends with "Typically, the handle_event will update the state in some way, but it doesn’t have to. Let’s take a look at a third use case, comm...more...

Stuff To Be Considered in the Next Edition

  • Reported in: B9.0 (07-Aug-19)
PDF page: 188
On p.188 (of the PDF) the instruction is to create a param.ex file with a protocol implementation of to_param I followed the instructions verbatim an...more...