It turned out the entire issue was this line:
context.Request.RouteValues["userName"] = userName;
I had to change it to
context.Items["userName"] = userName;