Why won't my iPhone switch to 3G when I'm out of WiFi range? My iPhone refuses to switch over from WiFi to 3G when the WiFi signal gets too weak to be usable. It will sit there indefinitely, unable to load a web page because I'm too far from the router, and not switch to the strong 3G signal that is available. Has anyone else had this problem? Is there anything I can do about it? Would it be better if I bought an Apple router? Do Android phones do this? I already submitted a bug report to Apple. It seems like such a simple thing to switch to 3G when WiFi stops working.

I know how to switch manually, but that's not a good solution. I think it's an iOS bug. I don't think it's the router's fault either, because the phone should be the one to determine when to switch to 3G. It should happen when WiFi fails to respond for a certain amount of time. I have a high-end Linksys router and an iPhone 4S. Router works great with all other devices and iPhone works well besides this one problem. This only happens when I'm outside my house and the router signal is no longer strong enough for data to get through. Once I go far enough down the street the signal switches to 3G, but there's about 30 yards where it hangs onto WiFi even though it can't get anything through.
The expected behavior is probably for the phone to stay on WiFi as long as it can connect, and then switch to 3G; as of iOS 5, I don't think the capability is there to automatically notice a dead WiFi connection and switch to 3G.  So what you're seeing is perhaps a lack of functionality, but it's not strictly speaking a bug.

I can't really see Apple making that the default functionality, though.  They'd get a lot of flak for making the iPhone too smart; nerds would complain that they don't have control.  If it was done, it would probably be an option.

It also would be very difficult to do well automatically.  How does iOS know a connection is bad?  What exactly does "when WiFi stops working" mean?


Lack of public internet access?  Windows 7 (and maybe Vista) does this by requesting a text file from Microsoft's website with predetermined content; that's how it knows if your connection has internet access or not.  But what if you're on a network at work that only offers access to intranet sites, and not the public internet?
Lack of data transfer despite network requests going out?  What if you're repeatedly trying a site that's experiencing a lot of traffic?  How many repeated failed requests mean a bad connection?
Long response times for outgoing requests? How long is too long? It could be averaged over time, but where's the threshold?


It could probably be done, but it would be difficult to do well, and the gain in widespread user satisfaction probably isn't that huge in comparison to other things.