OK everyone, I --like many others-- recently got an LG phone, in my case a LG K7 running Android 5.11, and within days of starting to use it, I got hit by the "LG IMS has stopped working" message loop (as often as 5 times a minute), rendering the phone all-but-unusable. Like many others, I did extensive web searches, practicing my expert google-fu, trying to locate a cause/solution for this error.
I found hundreds of posts looking for a solution for this, and on the few threads where a solution was given, it was always a copy/paste of the same workaround; going into the hidden menu and disabling IMS. It also had a note that the person who found this workaround didn't know what IMS did, but it didn't seem to impact the phone's functionality.
I chose to research this a bit further, and discovered that IMS is a key part of VoLTE, so with IMS disabled you can no longer use WiFi calling.
Some more research showed that not a single person had come up with another possible solution for the "LG IMS has stopped working" error, so I resigned myself to losing WiFi Calling. Thankfully, when studying the hidden menu, I was able to find not only an actual fix for the problem, but now have a pretty good idea of what exactly causes it.
I'm going to skip forward to the actual solution now, and explain it after.
----------------------------------
Step 1) Go to your dialer, and dial "277634#*#" This will enter you into your phone's hidden menu. If your phone doesn't enter the hidden menu, do a search online to find the code for your specific model.
Step 2) Locate the 'IMS Settings' menu (I've also heard of the settings being under "modem settings" in some phones). You'll know you're at the right menu when you see the "VoLTE (ON/OFF)" setting.
Step 3) Scroll down until you locate the "IP Version" setting.
Step 4) Change the setting to "IPV4V6". (the default is IPV6V4")
Step 4.5) ONLY If problem persists change setting to "IPV4"
Done! (I'm 2+ weeks without a single "LG IMS has stopped working" message)
-------------
Now what causes this, keep in mind, I'm actually very new to android (outside of playing around on Andy on my PC) this is an educated guess based on my PC knowledge (which is a bit more extensive).
OK, LG IMS seems to crash when it switches it's communication protocol from IPv6 to IPv4. Since most US networks are setup for IPv4, this causes problems.
What looks like what is happening is LG IMS is starting up on IPv6, immediately trying to switch to IPv4, and crashing, which causes it to reload in IPv6, causing an endless loop that starts up every time you enter range of a WiFi network that can't handle IPv6.
Setting the IP Version to "IPV4V6" causes LG IMS to default to IPv4, and only switch to IPv6 when it detects an incoming IPv6 connection. This completely bypasses the cause of the crash, so no more error messages.
Note that this in no way should impact your ability to connect to a IPv6 WiFi network, even if you set it to "IPV4," it should only affect the IMS IP settings.
I found hundreds of posts looking for a solution for this, and on the few threads where a solution was given, it was always a copy/paste of the same workaround; going into the hidden menu and disabling IMS. It also had a note that the person who found this workaround didn't know what IMS did, but it didn't seem to impact the phone's functionality.
I chose to research this a bit further, and discovered that IMS is a key part of VoLTE, so with IMS disabled you can no longer use WiFi calling.
Some more research showed that not a single person had come up with another possible solution for the "LG IMS has stopped working" error, so I resigned myself to losing WiFi Calling. Thankfully, when studying the hidden menu, I was able to find not only an actual fix for the problem, but now have a pretty good idea of what exactly causes it.
I'm going to skip forward to the actual solution now, and explain it after.
----------------------------------
Step 1) Go to your dialer, and dial "277634#*#" This will enter you into your phone's hidden menu. If your phone doesn't enter the hidden menu, do a search online to find the code for your specific model.
Step 2) Locate the 'IMS Settings' menu (I've also heard of the settings being under "modem settings" in some phones). You'll know you're at the right menu when you see the "VoLTE (ON/OFF)" setting.
Step 3) Scroll down until you locate the "IP Version" setting.
Step 4) Change the setting to "IPV4V6". (the default is IPV6V4")
Step 4.5) ONLY If problem persists change setting to "IPV4"
Done! (I'm 2+ weeks without a single "LG IMS has stopped working" message)
-------------
Now what causes this, keep in mind, I'm actually very new to android (outside of playing around on Andy on my PC) this is an educated guess based on my PC knowledge (which is a bit more extensive).
OK, LG IMS seems to crash when it switches it's communication protocol from IPv6 to IPv4. Since most US networks are setup for IPv4, this causes problems.
What looks like what is happening is LG IMS is starting up on IPv6, immediately trying to switch to IPv4, and crashing, which causes it to reload in IPv6, causing an endless loop that starts up every time you enter range of a WiFi network that can't handle IPv6.
Setting the IP Version to "IPV4V6" causes LG IMS to default to IPv4, and only switch to IPv6 when it detects an incoming IPv6 connection. This completely bypasses the cause of the crash, so no more error messages.
Note that this in no way should impact your ability to connect to a IPv6 WiFi network, even if you set it to "IPV4," it should only affect the IMS IP settings.