Probably should pass this error as first arg to `callback` rather than throwing.