small medium large xlarge

The latest version of the book is P1.0, released almost 2 years 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)
#86072
Paper page: 16

Make this stuff work with the latest Phoenix (1.4.x) and Elixir (1.9.x)... I'll help if you want.--Jeffrey J Osborn

  • Reported in: P1.0 (21-Mar-19)
  • Fixed: 21-May-19, awaiting book release
#84711
Paper page: 16
This is more for the benefit of people reading this page than an error in the printing. To compile the project with the versions in the source: ...more...
  • Reported in: P1.0 (27-Mar-19)
#84777
PDF page: 25
Missing the actual query that the reader should type here. Thus, I recommend the following: replace: Start by typing your query into the text a...more...
  • Reported in: P1.0 (09-Aug-18)
  • Fixed: 21-May-19, awaiting book release
#83479
PDF page: 30
Paper page: 16
== Compilation error in file lib/plate_slate_web/schema.ex == ** (Absinthe.Schema.Error) Invalid schema: Elixir.PlateSlateWeb.Schema:0: The root que...more...
  • Reported in: P1.0 (09-Aug-18)
  • Fixed: 21-May-19, awaiting book release
#83478
PDF page: 32
Paper page: 18
At the first command in the book (feel really annoyed): Absinthe.Schema.lookup_type(PlateSlateWeb.Schema, "MenuItem") == Compilation error in file ...more...
  • Reported in: P1.0 (31-Mar-19)
  • Fixed: 28-May-19, awaiting book release
#84808
PDF page: 36
@query """ { menuItems(matching: 123) { name } } """ test "menuItems field returns errors when using a bad value" do ...more...
Ben Wilson says: This happened because you upgraded absinthe_plug which has slightly different behaviour with respect to status codes. Using the version specified in the book lock file will ensure that the book code works.
  • Reported in: P1.0 (21-Apr-18)
  • Fixed: 28-May-19, awaiting book release
#83029
PDF page: 42
In the code snippet, 03-chp.userinput/4-ordering/lib/plate_slate/menu/menu.ex, the argument to '^order' should not be ':name'. Probably it is 'order'....more...
Ben Wilson says: The book code is correct. The interpolated value would result in `order: {:asc, :name} or {:desc, :name} which is what we want.
  • Reported in: P1.0 (25-Aug-18)
  • Fixed: 28-May-19, awaiting book release
#83578
PDF page: 56
Running the first test fails because of some characters that are changed: left: %{"name" => "Bánh mì"} right: %{"name" => "Bánh mì"} 1) test...more...
Ben Wilson says: This looks like an encoding issue with your editor. Make sure you're running in UTF8 mode. All Elixir code expects UTF8.
  • Reported in: P1.0 (30-May-19)
#85328
PDF page: 69
The query { menuItems(addedBefore: 123) { name } } should be { menuItems(filter: {addedBefore: 123}) { name } }--Pietr...more...
  • Reported in: P1.0 (24-Jul-19)
#85608
Paper page: 89

The last paragraph mentions format_error/1. This function is not used here, as the paragraph suggests. It is used on page 93.

  • Reported in: P1.0 (30-Sep-18)
  • Fixed: 28-May-19, awaiting book release
#83716
Paper page: 113
Contrary to the explanations ("For the purposes of this test case, though, doing an explicit Absinthe.run call is handy because it helps make it clear...more...
  • Reported in: P1.0 (03-Aug-18)
  • Fixed: 28-May-19, awaiting book release
#83447
PDF page: 125
Text suggests that Absinthe.run will be used to test a mutation, but the code pushes the mutation over the socket. Text: The next thing we do is ru...more...
Ben Wilson says: Good catch, this will be fixed in a future addition, thanks!
  • Reported in: P1.0 (26-Apr-18)
  • Fixed: 28-May-19, awaiting book release
#83041
Paper page: 142
The second example on this page is meant to be refering to `lib/plate_slate/ordering/order.ex` where the :customer_id is added to the cast list, howev...more...
  • Reported in: P1.0 (12-Dec-18)
  • Fixed: 28-May-19, awaiting book release
#84138
PDF page: 142
I think this page has an accidental repetition of the code block from "08-chp.auth/1-start/priv/repo/migrations/20170828180804_add_customer_to_orders....more...
  • Reported in: P1.0 (24-Jul-18)
  • Fixed: 21-May-19, awaiting book release
#83398
Paper page: 177

"which will import from the Absinthe.Resolution.Helpers module" >> "which we'll import ..."--Sean Mackesey

  • Reported in: P1.0 (24-Jul-18)
  • Fixed: 21-May-19, awaiting book release
#83399
Paper page: 179
"The first makes sure we can hook into individual fields when they need to use Dataloader" This sentence references Dataloader before it's been int...more...
  • Reported in: P1.0 (05-Nov-18)
  • Fixed: 28-May-19, awaiting book release
#83860
PDF page: 185
The book says that running loader |> Dataloader.get(Menu, Menu.Item, 2) would return nil but instead I get this: iex(9)> loader |> Dataloader.get(M...more...
Ben Wilson says: This happens if using a later version of Dataloader than the one specified in the book mix.lock.
  • Reported in: P1.0 (15-Nov-18)
  • Fixed: 21-May-19, awaiting book release
#83920
Paper page: 191
The description about the dataloader/2 has some typo. 1) "`Dataloader.load(loader, {key, args}, parent)" should be "`Dataloader.load(source, {key,...more...
Ben Wilson says: Fixed, thanks!
  • Reported in: P1.0 (07-Nov-18)
  • Fixed: 28-May-19, awaiting book release
#83867
PDF page: 197
Within the code example, the graphql query as well as the body of the index function should use camelCase (at least ... wasn't that the convention)?--...more...
Ben Wilson says: When using Absinthe.Phoenix.Controller you generally want to use `snake_case so that the values come back in a form more normally usable within Elixir. Absinthe allows you to use query transformers to support different casing conventions.
  • Reported in: P1.0 (09-Nov-18)
  • Fixed: 28-May-19, awaiting book release
#83883
PDF page: 204
The Phoenix.Controller.redirect function does not halt the connection which causes the following error Request: GET /admin/items ** (exit) an exce...more...
Ben Wilson says: This seems like an error in your code, Phoenix.Controller source code definitely shows that redirect halts the connection.
  • Reported in: P1.0 (24-Jul-18)
  • Fixed: 28-May-19, awaiting book release
#83415
PDF page: 238
"We’ll cover two of them: Apollo Client and Relay. At the current time, there are two major client-side JavaScript frameworks that developers use t...more...
Ben Wilson says: This will be fixed in the next edition, thanks!
  • Reported in: P1.0 (29-Apr-18)
  • Fixed: 28-May-19, awaiting book release
#83052
Paper page: 245
The example command of `get-graphql-schema ...localhost:4000/graphql > ./schema.graphql` at the very bottom of this page uses an incorrect URL. The UR...more...
  • Reported in: P1.0 (29-Apr-18)
#83053
Paper page: 247
Cannot compile the graphql schema with relay-compiler as described on this page. Even the book source code fails with same error I'm getting: Writi...more...