One annoying issue with wireguard in OpenWRT is the fact that it won’t re-check DNS on connection failure. In the event that my public IP changes (dynamic IP) the OpenWRT wireguard client doesn’t ever get the memo, even when DNS is updated.
I discovered here that you can tell OpenWRT via the command line to stop and start the wireguard interface. This forces a new DNS check and then the tunnel builds successfully. The command:
ubus call network.interface.wg0 down && ubus call network.interface.wg0 up
Success! Throw this into a cron job and you have an automated failsafe to ensure a reconnect after IP change.