Right, the issue here is just using null or "". You could use an Optional or Maybe type here. Even better you could define:
data SessionKey = ValidSessionKey | InvalidSessionKey
Then the developer making the modification code would have been much less likely to type "InvalidSessionKey" whereas the None/"" behavior is just an idiom. The problem here is that the domain knowledge of: "" is a valid session
wasn't communicated by the code.