Since you are getting a type mismatch and the error is pointing to the rule pass code in your if statement it tells me that whatever values this rule is evaluating is causing this problem. What value is being compared in this rule?
If you are comparing it to a session variable that does not exist yet it is possible that you are getting a mismatch based on this. One possibility is that the value being evaluated comes out as NULL, or it could be that you are trying to compare a numeric type of value against a string. This is the place to start looking though, whatever you are comparing against seems to be the problem.
There are several ways you can do some testing of this, if you print out the value you are comparing to you should be able to see what it it trying to match up. Another thing you can do is to apply the auth rule to another page by itself to see if you get an error there as well. Please post back and let us know what you discover.