I'm unsure if it should use peek or fully remove the error from the internal stack. Leaning the latter since other programs can find the details in the exception, and we don't want to accidentally capture an unrelated error that wasn't cleared earlier.