Do we want to throw here, or pass the error back to callback?