Out of curiousity, why doesn't this just call `request.prepare()` instead of failing?