Linear connector OAuth reauthentication loops after successful authorization

Open 💬 4 comments Opened Aug 6, 2026 by abkrim

What version of Codex CLI is running?

codex-cli 0.146.1

What subscription do you have?

ChatGPT sign-in; the exact subscription is not exposed by codex login status.

Which model were you using?

gpt-5.6-sol

What platform is your computer?

Darwin 25.5.0 arm64 arm (macOS 26.5.2)

What terminal emulator and version are you using?

iTerm2 3.6.11, no multiplexer.

Codex doctor report

The full redacted report was uploaded through /feedback with thread ID 019fd561-adb7-7153-b48f-4563ec97b2d0.

Relevant checks:

{
  "codexVersion": "0.146.1",
  "auth.credentials": {
    "status": "ok",
    "summary": "auth is configured",
    "stored ChatGPT tokens": "true",
    "stored auth mode": "chatgpt"
  },
  "installation": {
    "status": "ok",
    "summary": "installation looks consistent"
  },
  "runtime.provenance": {
    "status": "ok",
    "platform": "macos-aarch64",
    "version": "0.146.1"
  }
}

The doctor network checks were run from a network-restricted diagnostic sandbox, so those reachability results are not evidence for this connector failure.

What issue are you seeing?

The bundled Linear connector enters an OAuth reauthentication loop even though authentication is reported as accepted.

A read-only linear_get_issue call for AID-106 remains pending and then returns:

Authentication for Linear was requested and accepted. Retry this tool call now.

The tool result has isError=true, auth_reason=reauthentication_required, and identifies the bundled Linear connector. Retrying the same call after the accepted authentication produces the identical result. The accepted authorization therefore does not persist, and following the retry instruction creates an infinite loop.

What steps can reproduce the bug?

  1. Update Codex CLI to 0.146.1.
  2. Disconnect and reconnect the bundled Linear app, completing OAuth successfully.
  3. Restart Codex.
  4. Invoke the bundled Linear connector's read-only get_issue action with issue identifier AID-106.
  5. Complete the authentication request when prompted.
  6. Retry the same tool call as instructed.

Observed twice on 2026-08-06:

  • First call remained pending for about 100 seconds, then returned reauthentication_required while saying authentication was accepted.
  • The single retry remained pending again and returned the same authentication error.

Diagnostics and session logs: thread 019fd561-adb7-7153-b48f-4563ec97b2d0.

What is the expected behavior?

After OAuth is accepted, the retry should use the persisted authorization and return the requested Linear issue.

Additional information

This was tested only with a read-only action. No Linear mutations were attempted. Searches for open and closed issues using the exact error and related Linear/OAuth terms found no duplicate before filing.

View original on GitHub ↗

4 Comments

DavidRavnsborg · 17 days ago

I had the same issue this past week. It was disrupting my workflow.

I resolved this on my end. I had to find the authorisation buried within Linear's "Settings" > "Administration" > "Applications" > "Codex", purge it, then re-create it by installing the Connector from the OpenAI side.

This is still not being handled properly from OpenAI's side since they removed Apps , as far as I can tell. So despite being resolvable, this is still a bug for those who previously added Linear as a connected app.

DavidRavnsborg · 17 days ago

This should probably get the MCP label too, for the MCP connector tied to the authorisation.

prod-alissonfgc · 8 days ago

Reproducing this on 2026-08-20 with the Codex Cloud ↔ Linear agent flow (not just CLI tool calls).

Observed behavior:

  • Codex agent is installed in the Linear workspace and has read/write workspace permissions.
  • ChatGPT ↔ GitHub connection works, and Codex Cloud tasks can generate diffs that publish through the native Update branch UI.
  • Linear itself is reachable and the Codex agent receives @Codex mentions.
  • On the first Linear delegation, clicking Connect/Continue redirects to ChatGPT as expected and the UI reports that the Linear Codex agent was installed/connected.
  • Returning to the same Linear issue and mentioning @Codex again immediately returns Link your ChatGPT Codex account to continue / To use Codex, link your ChatGPT account, creating the same authentication loop.
  • Repeating the ChatGPT-side Linear installation/configuration does not persist the personal authorization.

Environment for this reproduction: ChatGPT/Codex web flow in Chrome on Android; Linear web/mobile UI. No private repository names, tokens, or credentials are included here.

I also saw the workaround reported above (Linear Settings → Administration → Applications → Codex, remove that workspace authorization, then reinstall the connector from the OpenAI side). I have not applied that destructive reset yet, so this comment is reporting the reproducible loop rather than claiming the workaround is universal.

The important distinction in this reproduction is that the workspace agent installation succeeds and the agent receives the mention; the failure is persistence/recognition of the user-level ChatGPT ↔ Codex ↔ Linear authorization after the callback.

prod-alissonfgc · 8 days ago

Additional reproduction after a clean reinstall of the Codex Linear app:

  • Revoked the existing Codex application from Linear workspace settings (Administration → Applications → Codex). The Linear MCP integration was left untouched.
  • Reinstalled Codex from the OpenAI/ChatGPT side via Codex connectors.
  • Authorized the same Linear workspace with read/write, assign/mention, realtime updates, and all public teams.
  • Installation completed successfully in ChatGPT.
  • Immediately tested a fresh @Codex mention in Linear.
  • Result: Codex still replied with both To use Codex, link your ChatGPT account. Then tag @Codex again... and Link your ChatGPT Codex account to continue.

So a full revoke + reinstall from the OpenAI side did not clear the account-link loop in this case. This appears to be a persisted identity/link-state issue beyond the workspace app installation itself.