Yes, my thinking was that the existing note didn't say that add_error() was new -- it left me thinking (if I were someone without much Django expertise) maybe it always existed and the new feature is that I can now call it from clean()?