Since the beginning of 2023, macOS High Sierra Internet and local recovery broke. An investigation with OpenCore Legacy Patcher Co-Developer dhinak
Mid 2023, I started to see multiple posts about macOS 10.13 High Sierra recovery not working. We all know about the certificate expiring and date and time issues, but this issue was DIFFERENT. Near the end of 2023, I started investigating the issue. I was able to reproduce it every single time. Sure enough, Local hard drive command R and Internet Recovery are broken with the same “The Recovery Server Could Not Be Contacted” error. What does this mean and can it be fixed?
While I was able to identify the issue and reproduce it, I was not able to come up with an actual fix other than the #2 fix listed below and creating a macOS High Sierra Bootable install USB. Wonder if you only have 1 Mac and can’t create a recovery disk? You are stuck!
So I reached out to OpenCore Legacy Patcher co-author dhinakg. For those that don’t know dhinakg is an expert in all things involving Apple Software Update Server. After some time, he replied with the root issue and a perfect workaround solution! Jump to #1 for an explanation of what the problem is and # for the URL fix.
Thank You
I would like to thank dhinakg for helping me investigate this issue! You can follow him on twitter here = https://twitter.com/dhinakg
Up next? macOS Sierra Recovery install is also broken! who knows if we can also fix this issue.
Table of contents
- What is the root problem?
- How to fix the issue?
- Fix #1 Boot to a newer version macOS internet Recovery!
- Fix #2 Create a macOS High Sierra bootable installer USB
- Fix #3 Change the NVRAM Software Update URL
#1 What is the root problem?
What is this error and why is it happening? The error pops up when you attempt to hit the continue button on the main macOS High Sierra Install menu.
When you click on that button, some behind the scenes things start to happen. One of the first things is the installer reaches out to Apple’s software update server, but the check FAILS! and is why you are presented with the error “The Recovery Server Could Not Be Contacted”
Failed to load catalog https://swscan.apple.com/content/catalogs/others/index-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog: Error Domain=MSUProductManagerErrorDomain Code=51 "(null)" UserInfo={NSUnderlyingError=0x7f9987c03e90 {Error Domain=MSUDataDownloaderErrorDomain Code=2 "(null)"}}
When you are booted to macOS internal recovery or Internet Recovery, macOS High Sierra MUST be downloaded from Apple’s servers and if the url can not be resolved you will be STUCK!
I tried multiple different things, thinking something was wrong with the curl
binary.
curl -v https://swscan.apple.com/content/catalogs/others/index-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog Trying 69.192.208.180:443... Connected to swscan.apple.com (69.192.208.180) port 443 (#0) Connection closed (0) Error (4) A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision.
Each time the connection was closed immediately.
What about trying with http
and not using https
SSL?
After investigation by dhinakg, he found that something broke in the internal SSL security verification or Security.framework.
How to fix the issue?
Now that we know what the issue is, how do we fix it?
The 1st easiest way is to boot to a newer version of macOS recovery IF your Mac supports it. macOS Mojave and newer Internet recovery version do NOT have this issue. You can follow this article to boot to the LATEST version of macOS Internet recovery https://support.apple.com/en-us/HT204904
The 2nd easiest way is just to boot from a High Sierra USB installer. You can make one from this Apple Support document https://support.apple.com/en-us/101578 this is fix #2 below. But what if you don’t have access to or the ability to create a USB installer? Follow Fix #3
The 3rd way is to change the NVRAM SUS URL: Follow the instructions for Fix #3 below.
As always, make sure your Mac date and time are correct in terminal inside macOS Recovery first. Click Utilities from the menu bar at the top and the Terminal app. type in date
and hit enter. It should be the current date. if so you can continue.
Fix #1 Boot to a newer version of macOS Internet Recovery: 10.14 Mojave or Newer
The easiest way to fix this issue is to boot your Mac to a newer version of macOS Internet Recovery. Follow the instructions below to boot to the latest compatible version of Intel Internet Recovery. https://support.apple.com/en-us/HT204904
IMPORTANT NOTE: This is ONLY if you WANT to install a newer version. ALSO if your Mac does NOT support Mojave or newer, follow Fix #2 or Fix #2. You can find out the earliest and latest version of macOS your Mac supports by going to https://everymac.com
Fix #2 Create a macOS High Sierra bootable installer USB
The 2nd easiest way to fix this issue is to boot your Mac off of a High Sierra USB installer. You can download High Sierra from this Apple URL https://apps.apple.com/app/macos-high-sierra/id1246284741
Then follow Apple’s instructions to create a USB installer https://support.apple.com/en-us/101578
Fix #3 Change the NVRAM Software Update URL
This fix is quick and easy and can be cleared out with a simple NVRAM/PRAM Reset.
Once in macOS recovery, click “Install or Upgrade macOS High Sierra”.
On the next screen. From the menu bar at the top select “Window” and then “Installer Log”
Now click the arrow next button. It will stall again, and show the error.
You will now see the error log at the bottom.
Click the “Continue” Button. It will take 10-20 seconds for the recovery error to show up. when it does, go to the log at the bottom.
Scroll up to the very top and look for this line below
Failed to load catalog https://swscan.apple.com/content/catalogs/others/index-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog: Error Domain=MSUProductManagerErrorDomain
Now click “Edit” from the top menu bar and select “Copy”
You now have the URL Copied. Click the “OK” Button on the recovery error to exit back to the main menu.
Now click on the top menu bar “Utilities” and select “Terminal”
Now you are in the Terminal app. Let’s paste the last section that we grabbed from the log. Click “Edit” from the top menu bar and select “Paste”
Now highlight this URL
https://swscan.apple.com/content/catalogs/others/index-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog
Click “command c” or “Edit” to Copy
You are now back at the main command line. Now type in the following command then select paste.
You will need to remove the S from https so it will sent the command over port 80. From this:
https://swscan.apple.com/content/catalogs/others/index-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog
to this:
http://swscan.apple.com/content/catalogs/others/index-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog
The final command will look like this:
nvram IASUCatalogURL="http://swscan.apple.com/content/catalogs/others/index-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog"
When complete hit enter. You will now be back at the command line. Exit terminal and go back to the main menu.
No Reboot is needed!
Click install macOS High Sierra. You will now be able to click past and install!
When complete if you want to reset the URL back to standard you can reset your NVRAM/PRAM https://support.apple.com/en-us/HT204063