I'm using Luke Holder's Geo plugin and it's been working great, so far. I'm testing on mobile and while it works fine on my Android device, visiting the site on two different iPhone 6s has resulted in the following error:
Internal Server Error Undefined property: stdClass::$traits
Line 94 in https://github.com/lukeholder/craft-geo/blob/master/geo/services/Geo_LocationService.php is responsible but I haven't yet figured out why it's doing it, nor how to prevent it.
Both phones are on a different mobile network (O2 in the UK) to my Android device (Three). I've tested on an iPhone SE (Tesco, which piggy-backs O2) and that's fine. So it's either the iPhone 6 that's the problem, or their network. But manually entering the Nekudo URL with the IP addresses reveals nothing different.
http://geoip.nekudo.com/api/18.104.22.168/full (IP of Android device)
http://geoip.nekudo.com/api/22.214.171.124/full (IP of one of the iPhone 6s)
The site is not in devMode (everything is fine when it is). I can't understand why the same server would return a server error for one phone and not another phone. There was an issue with the plugin returning this error when using a local IP address but I don't think that applies here. I ahve noticed that the two phones in question are locating to London, 100 miles away from their true location - could that be a clue?