Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Bug] Claude provider reported as "authenticated" when not logged in (hides the Sign in flow)

Open Beginner friendly
#14,186 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
88/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript

Research direction

Start in apps/server/src/provider/Layers/ClaudeProvider.ts at checkClaudeProviderStatus and trace the data returned by probeClaudeCapabilities. Verify the unauthenticated case described by claude auth status, then ensure the provider reports an unauthenticated state when account signals are absent and exposes the Sign in action; authenticated Claude accounts and Bedrock should retain their authenticated status.

Written by the indexing model from the issue text.

Description

Summary

T3 Code reports the Claude provider as authenticated even when the Claude Code CLI is
not logged in. This hides the "Sign in" affordance and misleads users. Codex on the same
machine correctly reports "Not authenticated".

Environment

  • T3 Code server v0.0.42, mode web, launched with t3 serve --host 0.0.0.0
  • Claude Code CLI 2.1.284 (also reproduced on 2.1.283), Linux x64 (container)
  • claude auth status returns:
    { "loggedIn": false, "authMethod": "none", "apiProvider": "firstParty", "configDirectory": "/home/t3/.claude" }
    
  • No ~/.claude/.credentials.json exists; ~/.claude.json contains only anonymous
    machineID/userID (no credentials).

Steps to reproduce

  1. On a machine where claude is installed on PATH but has never been logged in.
  2. Start the T3 server and open the web app → Claude is shown as Authenticated
    (with a version advisory but no email/subscription), and no Sign in button appears.

Expected

Claude should be shown as Not authenticated (with a Sign in action) until the user logs
in — matching Codex's behavior.

Actual

Claude is shown as status: ready / auth.status: "authenticated" even though no account is
present, so the Sign in flow is never offered.

Root cause (pointer)

apps/server/src/provider/Layers/ClaudeProvider.ts → checkClaudeProviderStatus sets the
probe's auth to { status: "authenticated" } whenever the capability probe returns a value
(if (!capabilities) { … warning … } then unconditionally auth: { status: "authenticated" }),
without checking whether the account is actually logged in. The probe
(probeClaudeCapabilities) returns initialization data even when unauthenticated (account
fields absent), so capabilities is truthy and the provider is marked authenticated.

Suggested fix

Only mark the provider authenticated when the probe yields real auth signals (a non-empty
email, a subscriptionType, a subscription tokenSource, or apiProvider === "bedrock");
otherwise report unauthenticated (with status that surfaces the Sign in action), so the
UI offers claude auth login.

Impact

On shared/hosted machines (e.g. one server per user behind a proxy), users cannot discover how
to sign in from the UI and must know to run claude auth login in a terminal.

Dominant language
TypeScript
Stars
23.6k
Forks
6.1k
Avg merge
9h 26m
Merged PRs (30d)
340

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from pingdotgg/t3code

All issues in pingdotgg/t3code

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.