Android VoIP: com.android.phone crashed

I set up a Voice over IP telephony account on my Android phone running Cyanogenmod 13, and later in the day I rebooted.

I was greeted with a popup "com.android.phone has crashed". It had a "more details" option which showed the exception's back trace:

java.lang.IllegalArgumentException: Invalid long: "123@192.168.042.023"
  at android.os.Parcel.readException(Parcel.java:1624)
  at android.os.Parcel.readException(Parcel.java:1573)
  at com.android.internal.telecom.ITelecomService$Stub$Proxy.getUserSelectedOutgoingPhoneAccount(ITelecomService.java:657)
  at android.telecom.TelecomManager.getUserSelectedOutgoingPhoneAccount(TelecomManager.java:463)
  at com.android.services.telephony.TelecomAccountRegistry.setupAccounts(TelecomAccountRegistry.java:510)
  at com.android.services.telephony.TelecomAccountRegistry.-wrap0(TelecomAccountRegistry.java)
  at com.android.services.telephony.TelecomAccountRegistry$1.onSubscriptionsChanged(TelecomAccountRegistry.java:286)
  at android.telephony.SubscriptionManager$OnSubscriptionsChangedListener$1.handleMessage(SubscriptionManager.java:397)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:148)
  at android.app.ActivityThread.main(ActivityThread.java:5456)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

When confirming the crash notification popup with "OK", the phone app got restarted and .. showed the popup again. I had about 0.5s to do something until the popup showed and blocked the complete user interface.

Adjusting the VoIP settings in Phone -> -> Settings -> Calling accounts -> SIP accounts was not possible because this crashed, too.

I had to find the location of the file in which the settings were stored and get rid of them manually. With adb, find and grep I finally found that the VoIP accounts are stored in data/data/com.android.server.telecom/files/phone-account-registrar-state.xml.

While the crash popup was open, I removed the file with rm and then held down the power button until the phone rebooted. The error was gone - as were the VoIP account settings.

Clicking "OK" after removing the file restores the phone-account-registrar-state.xml state, so hard rebooting after file removal is a must.

Written by Christian Weiske.

Comments? Please send an e-mail.