Official LinkedIn plugin fails with 403 “IP not authorized,” then “Failed to fetch template”

Open 💬 0 comments Opened Jul 18, 2026 by jjoanna2-debug

What version of the Codex App are you using (From “About Codex” dialog)?

26.715.31251 (5538)

What subscription do you have?

ChatGPT Pro Lite

What platform is your computer?

Darwin 25.5.0 arm64 arm

What issue are you seeing?

The official LinkedIn-published LinkedIn plugin cannot complete a basic people search in Codex.

The plugin call fails with:

McpServerError: IP not authorized
error_code: FORBIDDEN
HTTP status: 403
upstream_error_code: IP not authorized
URL: https://mcp.linkedin.com/widget/peoplesearch

Codex then replaces the actionable upstream error with a secondary UI failure:

Error loading app
Failed to fetch template

This leaves the plugin unusable for basic people search and obscures the useful 403 diagnostic behind a template-loading error.

What steps can reproduce the bug?

  1. Open Codex desktop on macOS.
  2. Invoke the official LinkedIn plugin published by LinkedIn.
  3. Ask it to find or search for a profile by first and last name.
  4. Observe the 403 / IP not authorized failure from https://mcp.linkedin.com/widget/peoplesearch.
  5. Observe the Codex UI error: Error loading app / Failed to fetch template.

What is the expected behavior?

The official LinkedIn plugin should complete the people search or return a clear, actionable plugin error. A failed upstream request should not be masked by a generic template-loading failure.

Additional information

Observed July 18, 2026.

Control comparison: on the same Mac and LinkedIn account, a separate local LinkedIn MCP server using an authenticated browser session reports a valid session and works. This confirms that the account and a local LinkedIn access route are functional, but it does not prove the hosted root cause.

Confirmed boundary: the official hosted LinkedIn app request is rejected upstream at LinkedIn's widget endpoint.

Reasonable inference: the hosted endpoint's IP authorization or allowlist is rejecting the connector caller's egress IP. Failed to fetch template appears to be a secondary renderer symptom after the upstream 403, rather than the primary failure.

Screenshot

!Codex showing the LinkedIn plugin 403 followed by Error loading app and Failed to fetch template

View original on GitHub ↗