Saltar al contenido

El anillo bloqueado

El problema más frecuente de Linux: un anillo que no se desbloquea solo. Por qué pasa, qué configuraciones lo provocan, y qué hace tu aplicación mientras un diálogo espera.

Cómo se desbloquea normalmente

La cadena que funciona, y que conviene tener clara para entender qué la rompe:

Las cuatro configuraciones donde no ocurre

La primera fila explica la mayoría de las incidencias reales, y merece decirla en voz alta porque es la que permite ayudar a un usuario en un mensaje: si tiene el inicio de sesión automático activado, el anillo no se desbloquea solo, y eso no tiene nada que ver con tu aplicación.

Qué hace tu código

Dos cosas, y ninguna es reintentar:

Uno: no bloquear la interfaz. La llamada puede tardar lo que tarde una persona en ver un diálogo, buscar una contraseña que no recuerda y escribirla. Si esa llamada está en el hilo que pinta, tu aplicación se queda congelada durante ese minuto y el usuario piensa que ha fallado — a veces sin ver el diálogo, si ha quedado detrás de tu ventana.

Rust
// la lectura va a un hilo aparte, y la interfaz muestra que está en cursolet secreto = tauri::async_runtime::spawn_blocking(move || {    secretos::leer(&cuenta)}).await??;

Dos: tratar el rechazo como ausencia. Si el usuario cierra el diálogo, el resultado es el mismo camino que «no está» — el que ya escribiste en macOS. No hay nada nuevo que implementar; solo que aquí ocurre por otra razón.

El mensaje que evita la incidencia

Y es lo que más rinde de este nivel. Cuando detectas que la operación falló por bloqueo, decir algo específico en vez de un error genérico:

No se ha podido guardar tu sesión: el almacén de contraseñas de tu sistema está bloqueado. Suele pasar cuando el equipo tiene el inicio de sesión automático activado. Puedes desbloquearlo desde el gestor de contraseñas de tu escritorio, o seguir usando la aplicación e iniciar sesión cada vez.

Tres cosas que hace ese texto: nombra la causa real, da la pista que resuelve el 80% de los casos y ofrece seguir sin arreglarlo. Sin él, la incidencia que recibes es «no me guarda la sesión en Linux» y no hay forma de avanzar sin varias preguntas.