It is unfortunately common for users to incorrectly use Scanner without calling .Err(). (In particular, I've seen it in three different social media posts recently.) We can't change the API, but we can add a runtime.Finalizer that will print a warning to stderr if a Scanner gets garbage collected with Scanner.scanCalled and Scanner.done true but not (new field I would add) Scanner.errCalled.