I am also just simply restarting the interface per cron script. The script runs every 20 minutes...
#!/bin/sh
#modified from https://openwrt.org/docs/guide-user/base-system/cron
#modified to use logger for global logging instead of scriptlogfile & added infinite reboot protection for reboot
# Prepare vars
DATE=$(date +%Y-%m-%d" "%H:%M:%S)
#logFile="/persistlogs/syslog"
# Ping and reboot if needed
#YOUR WIREGUARD PEER
CHECKHOSTNAME="192.168.X.X"
notification_email="YOUR@EMAIL.ADRESS"
VPNINTERFACE="wgvpn0"
ping -c3 $CHECKHOSTNAME
if [ $? -eq 0 ]; then
echo "ok"
logger $(echo "${DATE} - $0: OK - $VPNINTERFACE UP AND RUNNING")
else
echo "RESTART wgvpn0 Interface"
logger $(echo "${DATE} - $0: NO VPN CONNECTION RESTART $VPNINTERFACE INTERFACE...")
# Note: To avoid infinite reboot loop, wait 70 seconds and touch a file in /etc
ifdown $VPNINTERFACE
ifup $VPNINTERFACE
echo Subject: $0: VPN $VPNINTERFACE has been restarted | sendmail -v "$notification_email"
fi