When entering a public guildhall, the game will either load the guildhall or reload the haven garrison with an "Access denied" message. I suggest a quick check to see if a guildhall will deny the user access before the game attempts to load the guildhall. This would prevent unnecessary haven garrison reloads.