Under firm instructions from the publisher, I compiled a list of errata for the book as soon as I received it. These were all trivial matters: typos, and layout of code examples.
Now I’ve had a question from a reader that led to detecting a much more serious error: a broken code example on Page 141 (I won’t repeat the details here, but I’ve posted the fix on the errata page). My correspondent posted his code, I found an error in it, and traced the error back to mine.
What’s puzzling is how it got there in the first place. After verifying that there is indeed an error, I followed the link from the book’s companion page, and checked the module I’d drawn the example from. The module itself is correct. So where did the erroneous version come from, and why did neither I nor my reviewers pick up on it? I guess I must’ve been simplifying for the book, and it was an unfortunate chance that noone noticed.
Certainly in the latter part of the publishing process, including when compiling that first errata list under pressure, I wouldn’t have been looking for anything like that: I was just trying to limit the damage done in copyediting and typesetting.