Why is the Caching service stuck waiting for push token and never starts on OS X Server (Mavericks)? I've installed OS X Server app on a Mid-2007 iMac running OS X Mavericks. The installation was successful, but the Caching server doesn't start. The Server application graphically indicates that the server is started, but sudo serveradmin status caching indicates as follows:

caching:CacheStatus = "STARTING"
caching:StartupStatus = "PENDING"


When I examine /Library/Server/Caching/Logs/Debug.log, the last two relevant lines are always:

Registering for notifications
Waiting for push token


Yet, when I go to the server's Settings pane in the Server app, the "Enable Apple push notifications" option is checked, and the details dialog available after clicking "Edit..." indicates a valid push notifications certificate. When I click "Manage your certificates" in the same dialog, the "Apple Push Certificates Portal" website indicates a valid certificate as well.

The cache doesn't want to start - what's up? How do I get the elusive push token?
The clue came from the system log, looking at the entries from Apple Push Services Daemon (apsd):

apsd[69]: Hardware SerialNumber "System Serial#" looks incorrect or invalid


It turns out that this machine had a logic board (motherboard) replaced a while ago by Apple, and they never bothered to flash the machine's serial number. The only fix is to look for the tool that Apple technicians themselves use to flash the serial number onto a new motherboard.

I had to write down the serial # from the bottom of the stand and double-check on apple's support status site to make sure it matches my system. The serial flash tool will only let you set a new number, it won't change it, so if you mess up you're out of luck.

After running the tool and rebooting the system, the caching service started correctly without further ado.