Skip to content

Remote SSH + Apps causes sustained ~4 MB/s outbound traffic from app-server; disabling apps stops it #37726

Description

@fpspinach-dev

Summary

Codex Desktop Remote SSH can generate sustained outbound SSH traffic of roughly 4 MB/s from the remote codex app-server proxy when the apps feature is enabled.

This is reproducible on two independent Linux SSH hosts. Disabling apps on the remote host immediately stops the traffic.

This is not normal project file transfer: strace shows the proxy receiving and forwarding large app/list / App Directory payloads containing app metadata (names, descriptions, install URLs, icon assets, etc.).

The issue still reproduces with remote Codex CLI/runtime 0.147.0.

Impact

Observed cumulative SSH traffic exceeded 240 GB over roughly a day of normal Remote SSH use.

At the reproduced steady state:

  • apps=true: about 119–120 MB per 30 seconds (~4 MB/s, ~14 GB/hour per remote)
  • apps=false: traffic drops to effectively zero; one measurement was 12 bytes per 30 seconds

With multiple remote projects/hosts open, this can multiply quickly.

Environment

  • Client: Codex Desktop on macOS
  • Remote: Linux x86_64 over Codex Desktop Remote SSH
  • Confirmed remote runtime: codex-cli 0.147.0
  • Earlier reproduction also occurred with remote runtime 0.144.1
  • Reproduced on two separate Linux machines/projects

Reproduction

  1. Configure a Codex Desktop Remote SSH host.
  2. On the remote host, enable Apps:
codex features enable apps
  1. Restart/reopen the Remote Project so a new codex app-server proxy starts.
  2. Measure the proxy's stdout character count:
PID="$(pgrep -n -f 'codex app-server proxy')"
R1=$(awk '/^wchar:/{print $2}' /proc/$PID/io)
sleep 30
R2=$(awk '/^wchar:/{print $2}' /proc/$PID/io)
echo "$((R2-R1)) bytes"

Observed examples:

125002448 bytes / 30s  (~119 MB)
126731714 bytes / 30s  (~120 MB)
127639680 bytes / 30s  (~121 MB)
  1. Disable Apps on the same remote:
codex features disable apps
  1. Restart/reopen the Remote Project and repeat the measurement.

Observed:

12 bytes / 30s

The SSH traffic also visibly drops immediately after disabling Apps.

strace evidence

A 10-second sample of codex app-server proxy while the issue was active showed:

client read(0):       19
client sendto(10):    18
server recvfrom(10):  5132
stdout write(1):      5132

recv_MB=9.33
stdout_MB=7.58
send_MB=0.00

The server response payload contained a large sequence of App Directory entries, including fields such as:

name
description
logoUrl
iconAssets
distributionChannel
appMetadata
installUrl
isAccessible
isEnabled

and many unrelated public directory apps (travel, productivity, developer tools, etc.). This strongly suggests the traffic is the global merged App Directory/catalog being pushed over the Remote SSH app-server connection, rather than source files or Git state.

Earlier sampling also showed the proxy writing ~49 MB in 10 seconds while /proc/<pid>/io reported zero disk reads/writes, further ruling out repeated project filesystem scanning as the primary source.

Cross-host A/B result

Host A:

apps=true  -> ~119 MB / 30s
apps=false -> ~0

Host B:

apps=true  -> ~120 MB / 30s
apps=false -> SSH traffic immediately drops

This makes the issue unlikely to be specific to a repository, Git root, runtime data, file count, or one Linux host/kernel.

Expected behavior

Remote SSH should not continuously retransmit the complete Apps/App Directory catalog at multi-MB/s while idle.

app/list pagination and/or app/list/updated notifications should avoid repeatedly sending the full merged directory, or the Desktop client should deduplicate/throttle catalog refreshes and updates.

Workaround

codex features disable apps

This resolves the bandwidth issue, but disables Apps/Connector integration on that remote host, so it is not an ideal long-term workaround.

Related issue

Possibly related to #34901, which reports that app/list/updated can deliver the full 2,402-app merged catalog despite a paginated app/list request. That issue focuses on a plugin-detail rendering/refetch problem; this report focuses specifically on Remote SSH sustained network transfer / bandwidth usage, reproducible across two Linux remotes and eliminated by apps=false.

Sanitized logs and additional strace samples can be provided if useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appapp-serverIssues involving app server protocol or interfacesbugSomething isn't workingperformanceremote

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions