As stated in my comment on the question, the cause was a typo in the callback URL I was providing in the request. The URL I was providing was
http://localhost::8084/authorize/complete/twitter
with an accidental second colon before the port. My bad.