Wireguard with relayd breaks on snapshots after 10 Jan [WORKAROUND]

My wireguard stopped working after installing today's (r18785-8072bf3322 snapshot. Thing is, I also installed yesterday's and wireguard was working fine.


  1. Installed snapshot about 10 days ago (to test ntfs3)
  2. Got Wireguard running and (with help) got a working config for a relayd client bridge scenario
  3. Sysupgraded to yesterday's snapshot. Wireguard works properly.
  4. Sysupgraded to today's snapshot (r18785-8072bf3322). Wireguard breaks.

From step 2 on the configuration has been identical.

Symptoms: After today's sysupgrade, remote clients can communicate ONLY to masqueraded LAN resources. Remote clients can no longer communicate with the actual router itself on any of the router's internal IP address, including the router's LAN IP address or even the wireguard interface's IP address.

Between yesterday and today's snapshots, I see only these commits (these are from https://git.openwrt.org/?p=openwrt/openwrt.git;a=summary)

None of those look to be likely candidates for the breaking change.

I don't know the build system well enough. Is it possible there are changes to wireguard, or the firewall subsystem outside this tree? It's purely chance that I happened to want to test something and ended up using both yesterday's and today's snapshots with an identical configuration. I'd love to get this tracked down before the change that caused it gets buried.

It turns out this solution for getting wireguard to work together with relayd is very sensitive to WHEN relayd starts. That solution fails for me on all OpenWrt snapshots after 10 Jan or so unless relayd is started after wireguard. Re-ordering the interfaces in /etc/config/network doesn't seem to accomplish this, so for now to get wireguard working with relayd I have to restart relayd in /etc/rc.local :

( RELAYD=`ps www | grep relayd | grep -v grep | cut -c27-` && killall relayd && ( $RELAYD & ) )

I would be very interested if anyone knows a way within the normal configuration to delay when relayd is instantiated?