Using Proxyman.io to check network requests and debug why my home internet couldn’t connect to Apple servers for updates

Reading Time: 4 minutes
A simple black and white line art illustration of a web developer debugging at a desk on a laptop. Add imagery of astronaut icons and data connections floating around.

As evidenced by the very long post title, we’re about to get really niche-y. Not to be confused with getting real Nietzsche.1

Let’s go back in time to a Friday in October of 2024. I was trying to load up an Apple Fitness+ workout on my phone, but it kept immediately failing to open the video. No worries. I’ll just skip working out pre-work this morning. Not hard to make use of that excuse at 6:30 in the morning.

Jump ahead to the afternoon and the issue persists. I did my usual poking around Twitter and Apple status page to see if it’s a known outage to no avail. I decided to give loading the video a try on cellular data and it popped right up. I chalked it up to turning off the VPN and went about my day.

Later on, back on WiFi, I tried downloading an app I had previously downloaded. I got an immediate error. Something funky is afoot.

Next, I checked if my phone was on the latest iOS, but it immediately showed an error when checking for updates. Off WiFi it showed I could update to 18.0.1. Maybe this was an 18 bug? After the install the same issue persisted on WiFi. I updated my phone and checked my wife’s phone. Hers had the same issue. Then I checked my iPad on iOS 17. Same thing.

Then my wife let me know the Apple Homepod we have hadn’t been able to play music on its own the last couple days.

At this point I’m wondering if my IP got blocked from Apple’s servers. This was partly because I had been aggressively blocking IPs that were spamming our sites at work, so it was fresh in my mind.

By now we’ve got something weird going on. My brother lives down the street and has the same ISP so I had him check. Ends up he was seeing the same issue connecting to the Apple update server.2

It’s not just me. But I don’t have a good way to get to any additional information. Oddly enough, my MacBook could access the update server fine on the same network. This made me think that perhaps the issue was specific to iOS devices, or that my MacBook’s network requests were being routed differently somehow.

If only I could watch the network requests my phone was making to Apple’s servers to see what kind of response was coming back.

Then I recalled an episode of Syntax.fm on web scraping and a tool called Proxyman.io they used to monitor network requests from mobile devices.

Now seems like an apt time to point out I wasn’t doing anything untoward that would result in getting blocked by Apple. If I were I’d run that through Digital Ocean. Like when I needed to setup a Puppeteer build to monitor a certain theme park website and let me know if / when a fully booked magical experience became available before our trip. At a respectable rate of course.

Proxyman was surprisingly simple to set up (note: I am a developer, simple setup may vary by your level of experience with things like VPNs and network monitoring). Once I had it up and running I was able to watch network requests from my phone as I tried to access the software update screen.

Almost immediately on requesting, errors started showing to 3 different apple.com paths. They were getting 999 errors which after some quick Googling did seem to imply my network was being blocked from their servers.

Armed with this information I hopped on with Spectrum’s support thinking maybe they could help get to the bottom of this given it wasn’t just my home IP being blocked.

They were exceedingly unhelpful. Their response was essentially, “We don’t care or understand any of the information you’re providing and we will not escalate this.”

Fun side story: About a week later Spectrum had an outage in my area. I was on with their support trying to report it at 10 PM (again confirmed at my home and with my nearby brother). They told me to pound sand. Eventually I got an email about an outage in my area at 4:30 AM. The worst.

Next up was to see if Apple could do anything, and while they weren’t able to resolve the issue themselves they did seem interested in solving the problem and following up with me when we had to part ways.

Eventually I was able to get reconnected by switching from my ISP’s standard DNS servers to Cloudflare’s 1.1.1.1 and 1.0.0.1 servers. Switching DNS servers can help bypass issues with ISP DNS blocking or misconfigurations, as Cloudflare’s DNS is often more reliable and privacy-focused. I’m not certain my Spectrum’s DNS was what was blocked as my router requests appeared to be using 192.168.0.1 instead of Spectrum’s DNS records I found online. I’m a nerd, but I’m not that level of nerd on how DNS configurations work at the router level and at this point was ready to be done with this little side quest.

While I didn’t receive a reward for my side quest I did get to write this post. Plus I guess a few XP and a new skill with monitoring network requests made by my mobile devices.

  1. Pretty proud of how close I came to spelling that correct on try 1 given I’m not sure I’ve ever written his name before in any form.
  2. That reminds me I should probably see if he needs this fixed on his network still.

Pin It on Pinterest