It's not enough to handle all error cases; you have to respond to them properly as well.
While waiting in the Ottawa International Airport, I placed a call to my sister from a pay phone. The number is local, so I entered the seven digits. The phone's response was to play a recording for me:
"To dial this local number, you must enter the area code." I tried again, entering 1+<area code>+<local number>, what I had assumed to be the only way to dial a number with an area code. To this, the phone played another recording:
"This is a local call. You must not begin the number with a one." Finally, I dialed <area code>+<local number>; this worked.
In both failed cases, the phone system detected an error and alerted me, as well as suggesting the solution. So it did one thing right, and two things wrong. The suggested solution was not clear enough, but more importantly, the phone system knew the number I was trying to connect to; it should have adjusted the number and connected me, without notifying me of any perceived errors.