openai / openai/codex

[macOS] Remote Control enrollment never completes — “Couldn't update remote control availability” on Personal Plus account

Open
#46,601 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug remote
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

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

26.915.31945

What subscription do you have?

ChatGPT Plus

What platform is your computer?

Mac Studio, Apple Silicon

What issue are you seeing?

Remote Control cannot be enabled in Codex Desktop on my Mac Studio.

When I go to:

Settings → Connections → Control this Mac → Allow connections

Codex attempts to enable Remote Control but displays:

“Couldn't update remote control availability”

No Remote Control enrollment is successfully created and setup cannot proceed.

I have already done extensive troubleshooting, including restarting Codex/macOS, checking permissions, testing network-related troubleshooting, refreshing authentication, and clearing a stale local Remote Control enrollment. The problem persists with a clean/empty Remote Control enrollment table.

Important diagnostic findings

Codex Desktop version:
26.915.31945

Account:
ChatGPT Plus, Personal workspace

Platform:
Mac Studio / Apple Silicon / macOS

Normal Codex authentication and networking work correctly.

A normal authenticated Codex request succeeds:

GET /backend-api/codex/models
→ 200 OK

Normal Codex WebSocket connectivity also works:

wss://chatgpt.com/backend-api/codex/responses
→ successfully connected

macOS/device attestation also succeeds:

AttestationGenerateResponse { token: }

However, Remote Control enrollment does not complete.

During a fresh Remote Control enable attempt, the logs show:

remoteControl/enable

followed by:

no persisted remote control enrollment found:
websocket_url=wss://chatgpt.com/backend-api/wham/remote/control/server
app_server_client_name=Some("Codex Desktop")

Codex then reloads authentication:

Reloading auth for account

Reloaded auth, changed: false

remote control auth recovery succeeded:
mode=managed,
step=reload,
auth_state_changed=Some(false)

After that, enrollment does not progress.

There is no new Remote Control server/environment enrollment persisted and no pairing process begins.

Local enrollment database test

I backed up the Codex state database and removed the old Remote Control enrollment only.

After completely restarting Codex and attempting to enable Remote Control again, I queried:

SELECT account_id, remote_control_enabled, server_id, environment_id
FROM remote_control_enrollments;

The table remained empty.

Therefore Codex appears to fail before a new Remote Control host enrollment is persisted.

Other diagnostics

There is no observed Remote Control HTTP 401/403/409/503 error in logs.

The failure does not appear to be a general network/WebSocket problem because the regular Codex Responses WebSocket connects successfully.

It also does not appear to be a general attestation failure because Codex successfully generates an attestation token.

macOS unified logging showed:

LocalAuthentication Code=-12 "No paired accessory."

but Codex's attestation generation itself succeeds, so I do not know whether that message is relevant.

Steps to reproduce
  1. Launch Codex Desktop on macOS.
  2. Sign into a ChatGPT Plus Personal workspace.
  3. Open Settings → Connections.
  4. Select Control this Mac.
  5. Enable “Allow connections.”
  6. Wait several seconds.
  7. Codex displays “Couldn't update remote control availability.”
  8. Remote Control setup does not proceed.
  9. remote_control_enrollments remains empty.
Expected behavior

Codex should enroll the Mac as a Remote Control host, persist the new enrollment/server/environment information, enable Remote Control, and allow pairing/control from another device.

Troubleshooting already performed
  • Restarted Codex.
  • Restarted the Mac.
  • Checked macOS permissions.
  • Tested network troubleshooting.
  • Refreshed/reloaded authentication.
  • Confirmed normal authenticated Codex requests return HTTP 200.
  • Confirmed normal Codex WebSocket connectivity works.
  • Confirmed attestation token generation succeeds.
  • Backed up and cleared the existing Remote Control enrollment.
  • Retried from a completely empty remote_control_enrollments table.
  • Confirmed the table remains empty after the failed attempt.

The problem is consistently reproducible.

This looks like a failure somewhere between Remote Control authentication/attestation and creation/persistence of the Remote Control host enrollment.

Please let me know if there is another diagnostic log or endpoint result I can provide to identify the enrollment failure.

What steps can reproduce the bug?
  1. Launch Codex Desktop on my Mac Studio (Apple Silicon).
  2. Sign in to my ChatGPT Plus account using my Personal workspace.
  3. Open Settings → Connections → Control this Mac.
  4. Enable “Allow connections”.
  5. Wait several seconds.
  6. Codex displays the error: “Couldn't update remote control availability”.
  7. Remote Control setup/pairing never begins.

The issue is consistently reproducible.

Codex Desktop version: 26.915.31945
Account: ChatGPT Plus
Workspace: Personal
Platform: Mac Studio / Apple Silicon / macOS

I have also tested this after completely clearing the existing Remote Control enrollment from the local Codex state database (after making a backup). After restarting Codex and reproducing the issue, remote_control_enrollments remains empty, so a new Remote Control enrollment is not being persisted.

What is the expected behavior?

After enabling “Allow connections”, Codex Desktop should successfully enroll this Mac as a Remote Control host, persist the Remote Control enrollment (including the server/environment information), and make the Mac available for pairing/control from another device.

Instead, Codex displays “Couldn't update remote control availability” and no new enrollment is created.

Additional information

I have already done extensive troubleshooting and have been able to narrow the problem specifically to Remote Control enrollment.

Normal Codex authentication/networking works:

  • Authenticated requests to /backend-api/codex/models return HTTP 200 OK.
  • Normal Codex WebSocket connectivity works successfully with:
    wss://chatgpt.com/backend-api/codex/responses

Device attestation also appears to work:

  • Codex logs show:
    AttestationGenerateResponse { token: <redacted> }

However, Remote Control enrollment does not complete.

During a fresh Remote Control enable attempt, Codex logs:

remoteControl/enable

followed by:

no persisted remote control enrollment found: websocket_url=wss://chatgpt.com/backend-api/wham/remote/control/server, account_id=<redacted>, app_server_client_name=Some("Codex Desktop")

It then performs authentication recovery:

Reloading auth for account <redacted>
Reloaded auth, changed: false
remote control auth recovery succeeded: mode=managed, step=reload, auth_state_changed=Some(false)

After this, enrollment does not progress.

I backed up the Codex state database and removed only the existing Remote Control enrollment. I then completely restarted Codex and reproduced the issue.

After the failed fresh attempt:

SELECT account_id, remote_control_enabled, server_id, environment_id FROM remote_control_enrollments;

returns no rows.

Therefore a fresh Remote Control enrollment is not being persisted and no new server_id or environment_id is created locally.

I have already tested/reviewed:

  • Codex restart
  • macOS restart
  • macOS permissions
  • network troubleshooting
  • authentication refresh/reload
  • normal authenticated Codex HTTP connectivity
  • normal Codex WebSocket connectivity
  • device attestation
  • clearing the stale Remote Control enrollment and attempting a completely fresh enrollment

I have not observed a Remote Control 401, 403, 409, or 503 error in the available Codex logs.

The failure appears to occur after Remote Control enrollment begins/auth recovery occurs, but before a new Remote Control enrollment is successfully created and persisted.

I can provide additional sanitized logs or diagnostics if needed.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the remoteControl/enable entry point and trace the flow after the persisted-enrollment lookup and authentication recovery logs. Compare the empty remote_control_enrollments result with the expected creation of server_id and environment_id, using the supplied reproduction steps and diagnostics. Done means enabling “Allow connections” creates and persists an enrollment without the error.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, rust
Domain
authentication, desktop, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.