warnings() returns null for no errors, hash otherwise