[MCP][Regression] Linear OAuth fails pre-flow with “No authorization support detected” on Codex CLI 0.144.4 and 0.144.6
Summary
codex mcp login linear fails immediately with:
Error: No authorization support detected
The failure reproduces on fresh installations of stable Codex CLI 0.144.4 and 0.144.6 in an isolated headless Linux container. No authorization URL is produced, no callback listener is started, and the OAuth flow never begins.
This appears to be a regression of the failure reported in #11585, which was closed after a maintainer said the fix would ship in 0.100.0. The same error is now reproducible on 0.144.4 and 0.144.6.
Environment
- Codex CLI:
@openai/codex0.144.4 and 0.144.6, tested separately as fresh installs - 0.144.6 provenance: official npm registry; install integrity enforced;
codex --versionreturnedcodex-cli 0.144.6 - Platform: headless Linux container based on
node:22-bookworm-slim - User: non-root, uid 1000
- Network: outbound HTTPS available
- OpenAI authentication:
codex login statusreturnedLogged in using ChatGPT - MCP server:
https://mcp.linear.app/mcpusing Streamable HTTP
Exact non-secret configuration
cli_auth_credentials_store = "file"
mcp_oauth_credentials_store = "file"
mcp_oauth_callback_port = 1455
[features]
experimental_use_rmcp_client = true
[mcp_servers.linear]
url = "https://mcp.linear.app/mcp"
Minimal reproduction
npm install -g @openai/codex@0.144.6
codex --version
codex login status
codex mcp list
codex mcp get linear
codex mcp login linear
Representative output:
$ codex --version
codex-cli 0.144.6
$ codex login status
Logged in using ChatGPT
$ codex mcp list
Name Url Bearer Token Env Var Status Auth
linear https://mcp.linear.app/mcp - enabled Unsupported
$ codex mcp login linear
Error: No authorization support detected
Passing -c features.experimental_use_rmcp_client=true explicitly produces the same result. RUST_LOG=debug adds no diagnostic output for this subcommand.
Expected behavior
The current OpenAI Codex documentation says the Linear MCP can be configured at https://mcp.linear.app/mcp and authenticated with codex mcp login linear. The login command should initiate the OAuth flow. In a headless environment it should, at minimum, provide a usable authorization URL or documented remote-callback procedure instead of failing capability detection before the flow starts.
Actual behavior
- Immediate nonzero exit with
Error: No authorization support detected - No authorization URL
- No browser launch
- No callback listener
- No OAuth grant or token write
- No Linear tool call
Server discovery appears healthy
Unauthenticated probes from the same container returned:
GET https://mcp.linear.app/.well-known/oauth-protected-resource→ 200GET https://mcp.linear.app/.well-known/oauth-authorization-server→ 200GET https://mcp.linear.app/mcp→ 401 with aWWW-Authenticateresponse containingresource_metadata="https://mcp.linear.app/.well-known/oauth-protected-resource/mcp"
The server therefore appears to advertise OAuth discovery metadata, while the CLI reports that authorization support is unavailable before attempting the flow.
Documentation mismatch
- OpenAI's current Linear setup instructions describe adding the Linear URL and running
codex mcp login linear; they do not state that a legacy feature flag is required. - Linear's Codex integration page currently uses
rmcp_client = true. - Linear's general MCP documentation currently uses
experimental_use_rmcp_client = true.
Both tested Codex versions silently accept the latter configuration. Codex also silently accepts an intentionally bogus feature key, so configuration parsing does not reveal whether either rmcp key is recognized.
Impact
This blocks connecting a headless Codex agent to a shared Linear work queue. Until the connection works, a human must manually transfer work and results between agents.
Request
What exact supported configuration and stable Codex CLI build should be used to initiate Linear's authenticated Streamable HTTP MCP OAuth flow in an isolated/headless Linux environment?
Specifically:
- Is the MCP OAuth authorization provider compiled and enabled in the official npm Linux binary for 0.144.6?
- Which feature key is correct for 0.144.6:
rmcp_client,experimental_use_rmcp_client, or neither? - Should
codex mcp login linearprint an authorization URL when no browser is available, or is another documented callback/headless setting required? - What sanitized diagnostic output would help identify why capability detection returns
Auth: Unsupported?
4 Comments
I can reproduce the same regression with a private Streamable HTTP MCP server.
Environment:
Result:
codex mcp add <name> --url https://<redacted>/mcpsucceedscodex mcp login <name>immediately returns:Error: No authorization support detectedcodex mcp listreportsAuth: UnsupportedDiscovery checks:
GET /mcpreturns401with:WWW-Authenticate: Bearer resource_metadata="https://<redacted>/.well-known/oauth-protected-resource/mcp"POST /mcpreturns401, but without theWWW-Authenticateheader.Claude Code and Kiro successfully discover and complete OAuth against the same server. This suggests Codex 0.144.6 is not falling back to the well-known protected-resource metadata when its POST probe lacks the challenge header
@6zw8by68by-max Could this be because the container is missing system CA certificates? Is the problem solved by running:
apt-get update -qq
apt-get install -y -qq ca-certificates
in the container? If so, I agree it looks like a gap in the upstream Rust MCP library that it swallows this networking error.
@PedroFCM Would you be able to generate a minimized or sanitized reproducer?
I ran an independent, credential-free discovery preflight against
https://mcp.linear.app/mcpat2026-08-09T11:43:46Z, from outside the affected container.Result: 0 failures, 1 warning, 8 passes.
Confirmed on an unauthenticated
POST /mcp:401with a parseable Bearer challenge and absoluteresource_metadataresourceexactly matcheshttps://mcp.linear.app/mcpS256is advertisedThe only warning was that authorization-response
isssupport is not advertised; that should not explain capability detection reportingAuth: Unsupported.This does not exercise the browser redirect, callback, client registration, or token exchange. It independently narrows the failure away from Linear's currently published discovery metadata and toward the affected client/container path; the CA-certificate check suggested above remains a useful discriminator.
Reproduction:
The checker is dependency-free and sends no credentials or tool calls.