@Julian - As no one seems to be doing that, I'll take the initiative and give you the information instead.
(1) add -vv to networkd_dispatcher_args= in /etc/default/networkd-dispatcher and restart it? (2) include the output of networkctl list Output of networkctl list: $ networkctl list IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback carrier unmanaged 2 eth0 ether routable configured 3 eth1 ether routable configured 4 docker0 ether no-carrier unmanaged 4 links listed. All log items surrounding the incident with -vv enabled: Jan 09 19:10:04 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('OperationalState'): dbus.String('no-carrier', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_370') Jan 09 19:10:04 lb-plentiful-reservoir networkd-dispatcher: WARNING:Unknown index 70 seen, reloading interface list Jan 09 19:10:04 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Performed interface scan; state: <Dispatcher({'iface_names_by_idx': {1: 'lo', 2: 'eth0', 3: 'eth1', 4: 'docker0', 69: 'veth3a1259f', 70: 'vethb90b319'}, 'ifaces_by_name': {'lo': NetworkctlListState(idx=1, name='lo', type='loopback', operational='carrier', administrative='unmanaged'), 'eth0': NetworkctlListState(idx=2, name='eth0', type='ether', operational='routable', administrative='configured'), 'eth1': NetworkctlListState(idx=3, name='eth1', type='ether', operational='routable', administrative='configured'), 'docker0': NetworkctlListState(idx=4, name='docker0', type='ether', operational='no-carrier', administrative='unmanaged'), 'veth3a1259f': NetworkctlListState(idx=69, name='veth3a1259f', type='ether', operational='off', administrative='unmanaged'), 'vethb90b319': NetworkctlListState(idx=70, name='vethb90b319', type='ether', operational='no-carrier', administrative='unmanaged')}, 'script_dir': '/etc/networkd-dispatcher:/usr/lib/networkd-dispatcher'})> Jan 09 19:10:04 lb-plentiful-reservoir networkd-dispatcher: DEBUG:No change represented by operational state 'no-carrier' for interface 'vethb90b319' Jan 09 19:10:04 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('AdministrativeState'): dbus.String('unmanaged', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_369') Jan 09 19:10:04 lb-plentiful-reservoir networkd-dispatcher: DEBUG:No change represented by administrative state 'unmanaged' for interface 'veth3a1259f' Jan 09 19:10:04 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('AdministrativeState'): dbus.String('unmanaged', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_370') Jan 09 19:10:04 lb-plentiful-reservoir networkd-dispatcher: DEBUG:No change represented by administrative state 'unmanaged' for interface 'vethb90b319' Jan 09 19:10:05 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('AdministrativeState'): dbus.String('linger', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_369') Jan 09 19:10:05 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Path '/etc/networkd-dispatcher/linger.d' does not exist; skipping Jan 09 19:10:05 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Path '/usr/lib/networkd-dispatcher/linger.d' does not exist; skipping Jan 09 19:10:05 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Ignoring notification for interface NetworkctlListState(idx=69, name='veth3a1259f', type='ether', operational='off', administrative='linger') entering state 'linger': no triggers Jan 09 19:10:05 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('OperationalState'): dbus.String('carrier', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_370') Jan 09 19:10:05 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Ignored state 'carrier' seen for interface 'vethb90b319', skipping Jan 09 19:10:05 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('OperationalState'): dbus.String('routable', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_34') Jan 09 19:10:05 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Ignoring notification for interface NetworkctlListState(idx=4, name='docker0', type='ether', operational='routable', administrative='unmanaged') entering state 'routable': no triggers Jan 09 19:10:06 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('OperationalState'): dbus.String('degraded', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_370') Jan 09 19:10:06 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Ignored state 'degraded' seen for interface 'vethb90b319', skipping Jan 09 19:10:11 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('OperationalState'): dbus.String('no-carrier', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_370') Jan 09 19:10:11 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Ignoring notification for interface NetworkctlListState(idx=70, name='vethb90b319', type='ether', operational='no-carrier', administrative='unmanaged') entering state 'no-carrier': no triggers Jan 09 19:10:11 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('OperationalState'): dbus.String('off', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_370') Jan 09 19:10:11 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Ignoring notification for interface NetworkctlListState(idx=70, name='vethb90b319', type='ether', operational='off', administrative='unmanaged') entering state 'off': no triggers Jan 09 19:10:11 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('AdministrativeState'): dbus.String('linger', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_369') Jan 09 19:10:11 lb-plentiful-reservoir networkd-dispatcher: WARNING:Unknown index 69 seen, reloading interface list Jan 09 19:10:11 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Performed interface scan; state: <Dispatcher({'iface_names_by_idx': {1: 'lo', 2: 'eth0', 3: 'eth1', 4: 'docker0', 70: 'vethb90b319'}, 'ifaces_by_name': {'lo': NetworkctlListState(idx=1, name='lo', type='loopback', operational='carrier', administrative='unmanaged'), 'eth0': NetworkctlListState(idx=2, name='eth0', type='ether', operational='routable', administrative='configured'), 'eth1': NetworkctlListState(idx=3, name='eth1', type='ether', operational='routable', administrative='configured'), 'docker0': NetworkctlListState(idx=4, name='docker0', type='ether', operational='routable', administrative='unmanaged'), 'vethb90b319': NetworkctlListState(idx=70, name='vethb90b319', type='ether', operational='off', administrative='unmanaged')}, 'script_dir': '/etc/networkd-dispatcher:/usr/lib/networkd-dispatcher'})> Jan 09 19:10:11 lb-plentiful-reservoir networkd-dispatcher: ERROR:Unknown interface index 69 seen even after reload Jan 09 19:10:11 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('AdministrativeState'): dbus.String('linger', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_370') Jan 09 19:10:11 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Path '/etc/networkd-dispatcher/linger.d' does not exist; skipping Jan 09 19:10:11 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Path '/usr/lib/networkd-dispatcher/linger.d' does not exist; skipping Jan 09 19:10:11 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Ignoring notification for interface NetworkctlListState(idx=70, name='vethb90b319', type='ether', operational='off', administrative='linger') entering state 'linger': no triggers Jan 09 19:10:12 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('OperationalState'): dbus.String('no-carrier', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_34') Jan 09 19:10:12 lb-plentiful-reservoir networkd-dispatcher: DEBUG:Ignoring notification for interface NetworkctlListState(idx=4, name='docker0', type='ether', operational='no-carrier', administrative='unmanaged') entering state 'no-carrier': no triggers -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1775131 Title: Ubuntu 18.04 networking issue (connection drops after approx. 15 minutes) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/networkd-dispatcher/+bug/1775131/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs