Skip to content

Without Secret Service, the "system" store lands in a per-session kernel keyring #577

Closed
Doist/cli-core
#158

Description

@kyzzen

Environment: @doist/todoist-cli 5.4.5, @doist/todoist-sdk 15.3.1, Node 24.21.0, Linux (WSL2).

Related to #424, which covers a different failure of the same fallback.

On Linux with no Secret Service on the session bus (WSL2 here), td auth token <token> prints:

Token stored securely in the system credential manager

The key is written to the kernel keyring of the current login session (/proc/keys shows user keyring:user-<id>@todoist-cli linked under a _ses keyring). A process in another session then fails:

Error: AUTH_STORE_READ_FAILED
system credential manager returned no credential for the stored account; the keyring entry may have been removed externally.

That covers a second terminal, a cron job and anything after a WSL restart. Reproduce the second session with keyctl new_session (or the KEYCTL_JOIN_SESSION_KEYRING syscall) then td auth status.

Suggested fix: after a system-store write, read the credential back from a fresh session keyring or detect the keyutils backend, and fail with the same guidance #424 added (suggest --credential-store=plaintext).

Activity

  1. added a commit that references this issue on Oct 24, 2026
    7511a92
  2. doist-release-bot commented on Oct 24, 2026

    @doist-release-bot
    Contributor

    🎉 This issue has been resolved in version 5.8.1 🎉

    The release is available on:

    Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions