PPP lines not stable with NetworkManager

Hello All,

Im trying to upgrade from CentOS 6, I have configured ppp lines before with network-scripts and they work without any issues, but I am new to Network manager and I am facing couple of issues here.

My Setup - I have 4 ppp lines connected to my linux box and 4 vlans to connect to modem via a switch and I can bring them all up fine. There is script that monitors and runs health check every 15 mins and bounces them if required. This configuration works fine for a day or so and then all lines start acting weird and they wont come up at all unless I reboot the entire server then all lines start working. I have some logs that Im trying to debug and need some help.

eno2.101 - ppp0
eno2.102 - ppp1
eno2.103 - ppp2
eno2.104 - ppp3

When lines are down and I try to bring them up, I am getting below error -

nmcli con up DSLppp0

Error: Connection activation failed: The base network connection was interrupted

NetworkManager[2419034]: [1681376461.7138] audit: op=“connection-activate” uuid=“a436a203-0750-33d7-a798-3e0eceb5d37a” name=“DSLppp0” result=“fail” reason=“Failed to find a compatible device for this connection”

//Interfaces like ppp42 which is not configured anywhere shows up in logs as well.
NetworkManager[2879665]: PPP session is 21561
NetworkManager[2879665]: Connected to 00:1e:13:c2:89:c3 via interface eno2.103
NetworkManager[2879665]: using channel 8848
NetworkManager[2879665]: Using interface ppp42
NetworkManager[2879665]: Connect: ppp42 ↔ eno2.103
NetworkManager[2879665]: sent [LCP ConfReq id=0x1 <mru 1492> <magic 0x90f82ba5>]

here my NM config for ppp0, similarly we have for ppp1,2,3


cat DSLppp0.nmconnection

[connection]
id=DSLppp0
uuid=f503f630-c80d-4200-ae20-ffe2d7adc52e
type=pppoe
interface-name=ppp0

[ethernet]

[pppoe]
parent=eno2.101
password=
username=
pid-file=/var/run/pppoe-adsl-0.pid
pppoe-timeout=0

[ipv4]
method=auto

[ipv6]
addr-gen-mode=default
method=ignore

[proxy]

For some reason pid file not taking into affect even if manually touch that file it will get deleted.
ls -lt /var/run/pppoe-adsl-0.pid
ls: cannot access ‘/var/run/pppoe-adsl-0.pid’: No such file or directory

These same lines are working fine with centos 6 and laptop as well. Not able to figure out where the issue is any help is appriciated.