NetworkManager does not update ipv6 address of br0 automaticly

I have a fedora server as a router. It shares the network with NetworkManager and dnsmasq. It has 4 network interfaces. Enp0s0 ~ enp2s0 are slaves of br0. Enp3s0 is WAN port, which connects to a fiber modem. Both ipv4 and ipv6 addresses of the modem are channed every 2 to 3 weeks by the operator. The router works correctly except after the ipv6 address of the modem changes. Enp3s0 is assigned a new ipv6 address but br0 isn’t. If I modify the address with nmcli or ip command manually, it goes back to old address soon. The only way to solve the problem is to restart NetworkManager manually. The configuration file is as following:
br0.nmconnection

[connection]
id=br0
uuid=bc0456ca-6626-4f3d-bc03-0ac692dc2e2a
type=bridge
interface-name=br0
zone=internal
[ethernet]
[bridge]
[ipv4]
address1=192.168.20.1/24
may-fail=false
method=manual
[ipv6]
addr-gen-mode=default
may-fail=false
method=shared

enp3s0.nmconnection

[connection]
id=enp3s0
uuid=cabc94d4-964f-4f4d-bed1-ed49e135ba24
type=ethernet
interface-name=enp3s0
zone=external
[ethernet]
[ipv4]
method=auto
[ipv6]
addr-gen-mode=eui64
method=auto
ip6-privacy=2
[proxy]

Create a script logging dispatcher events:

sudo tee /etc/NetworkManager/dispatcher.d/00-log << "EOF" > /dev/null
#!/usr/bin/bash
echo ${@} $(env) | systemd-cat -t nm-dispatcher
EOF
sudo chmod +x /etc/NetworkManager/dispatcher.d/*
sudo systemctl restart NetworkManager.service
journalctl --no-pager -b -t nm-dispatcher

Investigate the conditions for IPv6 change to trigger the fix.
To avoid restarting the service, try disconnecting/reconnecting the downstream.
See also: How to get WireGuard working on boot/startup - #4 by vgaetera

nmcli connection up br0 does not work.

Try this way:

sudo nmcli general reload
for NM_CMD in down up
do for NM_CON in br0 enp0s0 enp1s0 enp2s0
do sudo nmcli connection ${NM_CMD} ${NM_CON}
done
done