Hi,
I can confirm I am experiencing the exact same issue on my end, even with the latest RouterOS 7.23rc3.
In my case, I am running on the Zefiro Net network (Italy), and in my opinion, this behavior is actually a provider-side / infrastructure routing issue rather than a pure RouterOS bug.
Here is what seems to be happening: when you toggle the lte1 interface, the ISP correctly assigns a new dynamic IPv4 and a new IPv6 prefix via SLAAC. However, the ISP's gateway fails to properly rebuild or update the routing table binding between your new IPv6 prefix and their gateway. Because the Layer-2 link technically stays alive for the router, RouterOS doesn't trigger a full renegotiation that forces the ISP to refresh the IPv6 routing paths.
Since RouterOS can't force the provider's gateway to behave, the only reliable workaround from our side is exactly what you found: resetting the LTE modem to force a clean reconnection from scratch. This forces the ISP infrastructure to rerun its full network provisioning scripts for your session.
To automate this without manually running the command every time, you can use a simple script combined with a scheduler that checks for IPv6 connectivity (e.g., pinging a reliable IPv6 host like Google DNS) and reboots the LTE chip if it fails.
# ===== CONFIG =====
:local lteName "lte1"
:local testIPv6 "2001:4860:4860::8888"
# ===== Controllo LTE running =====
:if ([:len [/interface lte find where name=$lteName and running]] = 0) do={
:log warning "LTE non running - nessuna azione."
:return 0
}
# ===== Controllo default route IPv6 =====
:if ([:len [/ipv6 route find where dst-address="::/0" and active]] = 0) do={
:log warning "Nessuna default IPv6 attiva."
:return 0
}
# ===== Test connettività IPv6 =====
:local pingResult [/ping $testIPv6 count=3]
:if ($pingResult = 0) do={
:log error "GTPv6 zombie rilevato - reset modem in corso..."
/interface lte at-chat $lteName input="AT+CFUN=1,1"
} else={
:log info "IPv6 OK - nessun reset necessario."
}
:return 0