use built-in on-error system