Zerotier-one crashed upon bond rotatation

I have a root server (moon) sitting on two local networks accessible on two interfaces eth0 and eth1 from ZT client. ZT recognizes the two path and after a while combines them via bonding (active-backup). CLI call bond deadbeef00 show gives:

Bond                   : active-backup
Links                  : 9/9

Now if I try to rotate the bond with that ID, zerotier-one (service/binary) crashes and I get this output in CLI:

zerotier-cli bond <peerId> rotate
0 bond

The crashed zerotier-one binary does not output anything (stdout/stderr) after the crash. There is no verbose/debug mode (IIUC).

Interestingly, even if I don’t force rotate the and keep calling bond list, I get this pattern:

  • At first the list is empty for a couple of minutes.
  • A bond of type active-backup shows up in the list and stays there for a couple of minutes. This type does not seem to change even with policy set to balace-* set in local.conf.
  • After a couple of minutes (without forcing a rotation) calling CLI with bond list crashes (some core dump due to exception not caught):
    <peer>                        <bondtype>     <links>
      NONE                              NONE        NONE       NONE
    <peer>                        <bondtype>     <links>
deadbeef00                     active-backup         9/9
    <peer>                        <bondtype>     <links>
terminate called after throwing an instance of 'nlohmann::detail::type_error'
  what():  [json.exception.type_error.302] type must be number, but is null
  • At this point the zerotier-one binary is still running, and if ask for json output with bond list -j, the call does not crash anymore. The json output shows the bond is still active on both paths.
  • If I try to force rotate at any point, zerotier-one binary crashes.

This setup is somewhat complicated and is inside docker with some non-trivial routing. So there might be conflicts that make bonding difficult in my setup. I’m wondering what’s going on with what I mentioned above. It could be that the moment ZT tries to bond or switch/rotate path it crashes for some reason. I can share further details if needed.