The Setup: A Photographer's Digital Workflow
As a photographer, my Mac is the command center for my work. I edit photos in Capture One, manage libraries in Lightroom, and sometimes run automated culling scripts. But the real magic happens when I can step away from the desk and still control the machine. That's where remote control comes in.
I wanted to link my phone to my Mac so I could check upload progress, tweak export settings, or even start a render while I'm out shooting. The feature was right there in the menu, but it refused to work. Every attempt ended with the same red error message: "Unable to enable remote control. Please try again."
I'd tried the usual fixes: restarting the app, logging out and back in, re-pairing devices, even updating the software. Nothing helped. I was about to blame my account permissions or a bug in the app version.
The Turning Point: Letting the AI Diagnose Itself
Then I had an idea. The app that was failing was made by the same company that makes the AI assistant I use daily. So I asked the AI to help fix its own product.
I took screenshots of both my phone and desktop screens and sent them to the AI, along with a simple request: "Connect my desktop to my phone." What followed was a collaborative debugging session that lasted about twenty minutes.
I did the physical tasks—clicking buttons, taking screenshots, running terminal commands. The AI analyzed the visuals, read logs, consulted official documentation, and suggested next steps. It wasn't a one-shot answer; it was a back-and-forth conversation where each piece of new information narrowed down the problem.
Not the Account, Not the Workspace
Early on, we ruled out the obvious suspects. The phone app had a remote control section under Settings, which asked me to confirm I was using the same ChatGPT account and workspace on both devices. That checked out fine.
One thing that tripped me up: "workspace" here didn't mean my photo project folders. It meant the ChatGPT workspace type—Personal, Business, or Enterprise. Both my phone and Mac were on the same Personal workspace, so that was a dead end.
The Version Update That Changed Nothing
Next, I noticed there was a software update available for the desktop app. My version was 26.803.61601, and the new one was 26.810.50856. I updated, hoping it might be a known bug fix.
It wasn't. After the update, the same red error appeared. This ruled out a simple version issue.
Digging Into the Logs
We then turned to the official logs. The app stores them at ~/Library/Logs/com.openai.codex/YYYY/MM/DD. Searching for "remoteControl" revealed something interesting:
method=remoteControl/enable errorCode=null refresh_remote_control_started refresh_remote_control_completed nextConnectionCount=0 previousConnectionCount=0 creationFailureCount=0
The error code was null, meaning the system thought it had enabled remote control. But the connection count stayed at zero. That suggested the problem wasn't the switch itself, but something deeper in the connection path.
The Proxy Problem: A Photographer's Network Reality
Here's where my setup gets specific. I use a local proxy to access certain services from my Mac. The proxy runs on 127.0.0.1 with ports 33210 for HTTP/HTTPS and 33211 for SOCKS. The main app worked fine—I could browse and use the software normally. But that didn't mean every background connection inherited the same proxy settings.
We ran two quick tests. First, I tried to reach the service directly without a proxy:
curl -I --connect-timeout 10 https://chatgpt.com
It timed out. Then I specified the proxy:
curl -I --proxy http://127.0.0.1:33210 --connect-timeout 10 https://chatgpt.com
That returned "HTTP/1.1 200 Connection established" almost instantly. The difference was clear: direct access failed, proxy access succeeded.
The Fix: Injecting Proxy Variables
The solution was to launch the app with explicit proxy environment variables. I quit the app completely, then opened a terminal and ran:
export HTTP_PROXY=http://127.0.0.1:33210
export HTTPS_PROXY=http://127.0.0.1:33210
export ALL_PROXY=socks5://127.0.0.1:33211
open -a "Codex"
That did the trick. This time, when I clicked "Allow" in the remote control settings, it worked. My phone connected to my Mac instantly.
But there was a catch: those export commands only apply to that terminal session. If I quit the app or restarted my Mac, I'd have to repeat the process. That wasn't practical for everyday use.
Building a Dedicated Launcher
To make this permanent, I created a small AppleScript app that waits for my proxy software to start (8 seconds), then launches Codex with the proxy variables set. Here's how:
mkdir -p "$HOME/Applications"
osacompile -o "$HOME/Applications/Codex-Proxy-Launcher.app" -e 'delay 8' -e 'do shell script "export HTTP_PROXY=http://127.0.0.1:33210; export HTTPS_PROXY=http://127.0.0.1:33210; export ALL_PROXY=socks://127.0.0.1:33211; /usr/bin/open -a Codex"'
Then I added this launcher to my login items in System Settings, and removed the original Codex from login items. Now, every time I start my Mac, the launcher runs, waits for the proxy, and opens Codex with the right settings. If I ever need to quit and reopen Codex, I just use the launcher icon in my Dock.
Lessons for Photographers
This whole ordeal taught me a few things that apply beyond this specific app:
- Your network setup can silently break background features. The main app worked, but a secondary service didn't inherit the proxy. This could affect any app that uses background connections for sync, remote control, or cloud backups.
- Logs are your friend. Even if the error message is vague, the logs often contain the real clue. Look for terms like "connection count" or "error code" to see what's actually happening.
- Don't assume the obvious. I spent days blaming account permissions or software bugs, but it was a simple network configuration issue.
- AI can be a debugging partner. Instead of just searching for answers, I walked the AI through my screens and commands. It helped me think systematically, and we got to the root cause faster than I would have alone.
Now, I can leave my Mac running a batch export or a large render, and check on it from my phone while I'm out shooting. It's not about the specific commands—it's about knowing how to diagnose problems methodically. And that's a skill every photographer can use, whether you're dealing with remote control issues or just trying to get your gear to talk to each other.
Comments (0)
Please sign in to post a comment.
Don't have an account? Create one
No comments yet. Be the first to comment!