Stupid computer tricks.
I ordered an iPhone upgrade through the Apple Store (US) as it seemed a bit quicker than AT&T's vague promise of delivery. When Apple tried to run the upgrade it turned out I needed to pay my balance first (oops) which I promptly did. At this point both sides say it should take 24hrs for the information on upgrading should to be transferred to Apple once the balance is cleared.
It's been a week now and nothings happened so I called Apple first. The rep was nice and checked everything and all was well except for the upgrade approval from AT&T. She said Apple has been having trouble with these so they set up a special department to deal with AT&T's inability to send approval on balance blocks. Apparently they get thousands of these every day. She said I should call AT&T, but warned AT&T would point their finger back at Apple.
Of course they did. The told me everything was fine on their end and Apple was the guilty party.
I've written systems like this and knowing the parties involved, I'm betting the issue is at AT&T where their systems are likely 20 years old and maintained by zombies. I imagine somewhere in the bowels of the beast an individual has to manually hit a checkbox to approve things, and they are out sick. Or possibly eaten by a zombie.
The Apple rep told me a lot of people resolve this issue by finding an iPhone at Walmart or RadioShack (where people seem to not think look for an iPhone 4) and then cancel the Apple order.
I don't know if Verizon is any better, but if there were an option today I'd leave AT&T in a heartbeat.
The funny thing is my iPhone 3G no longer works on battery so all it is is an expensive desk phone (works plugged in although the ring volume is somehow bound to zero).