new auto_error logic