I've removed the device from Garmin Connect in case that's the issue
I've removed all of the files associated with Garmin Express:
286 rm -f -R ~/Library/Application\ Support/Garmin/Devices
287 rm -f -R ~/Library/Application\ Support/Garmin/GarminConnect
288 rm -f -R ~/Library/Application\ Support/Garmin/Express
289 rm -f -R ~/Library/Caches/com.garmin.renu*
And tried many times; eventually I gave up and started looking for logs which I found, the log shows:
Alexanders-MacBook-Pro:zymonic-dev alex$ tail /Users/alex/Library/Application\ Support/Garmin/Express/Logs/Client_2015.04.11.txt -n15
==> /Users/alex/Library/Application Support/Garmin/Express/Logs/Client_2015.04.11.txt <==
2015-04-11 19.39.35 (GMT+01:00) | 4879 | I | Loading SSO URL: /sso/embed?clientId=GarminExpressConnect&reauth=true&createAccountShown=false&openCreateAccount=false&locale=en_GB&displayNameShown=true&cssUrl=static.garmincdn.com/.../gauth-mac-neue-1.0.min.css
2015-04-11 19.39.43 (GMT+01:00) | 4879 | I | Received SSO ticket
2015-04-11 19.39.43 (GMT+01:00) | 24395 | I | Starting Connect Registration
2015-04-11 19.39.44 (GMT+01:00) | 38311 | I | Registering with Connect
2015-04-11 19.39.44 (GMT+01:00) | 4879 | E | ServerRequest failed with Error:Error Domain=HttpStatusCodeErrorDomain Code=400 "The operation couldn’t be completed. (HttpStatusCodeErrorDomain error 400.)" UserInfo=0x60800087de40 {NSErrorFailingURLKey=connectapi.garmin.com/.../device}
2015-04-11 19.39.44 (GMT+01:00) | 4879 | E | RegisterDeviceWithConnect Failed (Code: 400)
Clearly the Single Sign On (SSO) works (in fact it gives me a password error if I enter the wrong password), but the device register itself returns a code 400.
I am NOT going to master reset my device until after Manchester Marathon next Sunday (as the command line Python Garmin script works fine of my Linux machine at work - and has done since I bought the 310XT despite ANT Agent requiring me to master reset my device once a month to be able to connect...)
Any ideas how I can fix this; I've tried creating a new account and using my existing account.