Codex Desktop: remote plugin composer icon renders as broken image while history icon works

Open 💬 1 comment Opened Jul 13, 2026 by wangzhihaolighter

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

26.707.6957.0

What subscription do you have?

Not included

What platform is your computer?

Windows 11, Microsoft Windows NT 10.0.26200.0 x64

What issue are you seeing?

When the remote Superpowers plugin is mentioned in the Codex Desktop composer, its icon renders as a broken image. The same plugin icon renders normally after the message appears in conversation history.

The plugin itself remains functional; this appears to be isolated to composer icon rendering for the remote plugin surface.

Plugin details:

  • Plugin: superpowers@openai-curated-remote
  • Plugin release: 6.1.1
  • Plugin ID: plugins~Plugin_60aea7460bd4819199fd97a9553a5e12

What steps can reproduce the bug?

  1. Open Codex Desktop on Windows.
  2. Start a new task or focus the message composer.
  3. Select/mention Superpowers from openai-curated-remote.
  4. Observe that the icon immediately before “Superpowers” is a broken-image placeholder.
  5. Send the message.
  6. Observe that the icon shown for the plugin mention in conversation history renders normally.

The behavior persists after restarting Codex and while using the latest available desktop client.

What is the expected behavior?

The Superpowers icon should render consistently in both the composer and conversation history.

Additional information

Local investigation found:

  • The remote plugin catalog contains both composer_icon_url and logo_url.
  • A direct request to each catalog URL returns HTTP 403.
  • The response body for the composer icon URL is:

``json
{"detail":"File stream access denied."}
``

  • The local 6.1.1 plugin bundle contains a valid assets/superpowers-small.svg, so the packaged icon asset is present.
  • codex doctor --all reports 17 ok · 1 idle · 0 warn · 0 fail.
  • Current desktop logs do not report a missing local Superpowers asset.

This suggests the composer may be attempting to render a remote icon URL that is not accessible in that rendering path, while history uses a cached, inlined, or otherwise resolved icon.

A screenshot demonstrating the composer/history difference is available if needed.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗