Vous précisez que "open" est disponible dans votre instruction if, mais "Desktop" n'est pas toujours disponible et n'est pas enveloppé dans une instruction de qualification. En d'autres termes, "Desktop" n'est pas toujours une clé, mais votre boucle la recherche toujours tant que la clé "open" est définie.