We are happy to answer your questions about the code or discuss technical ideas.
Please complete the following checklist (by adding [x]):
Kernel Version: 6.18.9-2 cachyos, also tested with 6.12.69-2 cachyos and 6.12.69-1 unpatched kernel.
Expected Behaviour: With split tunneling enabled, traffic should only be tunneled through the VPN for the included apps.
Actual Behaviour: Split tunneling shows up as enabled in the app, but upon connecting to the VPN, the specified rules are not applied.
in ~/.cache/Proton/VPN/logs/vpn-app.log, the following is logged when connecting:
2026-02-08T22:22:34.462467+00:00 | proton.vpn.connection.states:314 | ERROR | Error setting split tunnel configuration
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/proton/vpn/daemon/split_tunneling/client.py", line 148, in set_config
await _backwards_compatible_asyncio_timeout(
...<3 lines>...
)
File "/usr/lib/python3.14/site-packages/proton/vpn/daemon/split_tunneling/client.py", line 94, in _backwards_compatible_asyncio_timeout
await func(*args)
File "/usr/lib/python3.14/site-packages/dbus_fast/aio/proxy_object.py", line 111, in method_fn
BaseProxyInterface._check_method_return(msg, intr_method.out_signature)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/dbus_fast/proxy_object.py", line 85, in _check_method_return
raise DBusError._from_message(msg)
dbus_fast.errors.DBusError: The service interface raised an error: Failed to attach BPF program b'syscall__execve' to kprobe b'sys_execve', it's not traceable (either non-existing, inlined, or marked as "notrace").
[' File "/usr/lib/python3.14/site-packages/dbus_fast/aio/message_bus.py", line 490, in _done\n result = fut.result()\n', ' File "/usr/lib/python3.14/site-packages/proton/vpn/daemon/split_tunneling/service.py", line 97, in set_config\n await self._service.set_config(uid, config)\n', ' File "/usr/lib/python3.14/site-packages/proton/vpn/daemon/split_tunneling/split_tunneling.py", line 53, in set_config\n self._app_split_tunneling.start(self._config_by_uid)\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^\n', ' File "/usr/lib/python3.14/site-packages/proton/vpn/daemon/split_tunneling/apps/service.py", line 66, in start\n return self._process_monitor.start(config_by_uid=config_by_uid)\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/usr/lib/python3.14/site-packages/proton/vpn/daemon/split_tunneling/apps/process_monitor.py", line 106, in start\n self._attach_bpf()\n ~~~~~~~~~~~~~~~~^^\n', ' File "/usr/lib/python3.14/site-packages/proton/vpn/daemon/split_tunneling/apps/process_monitor.py", line 157, in _attach_bpf\n self._bpf.attach_kprobe(event=execve_fnname, fn_name="syscall__execve")\n ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/usr/lib/python3.14/site-packages/bcc/__init__.py", line 883, in attach_kprobe\n raise Exception("Failed to attach BPF program %s to kprobe %s"\n ", it\'s not traceable (either non-existing, inlined, or marked as \\"notrace\\")" %\n (fn_name, event))\n']
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/proton/vpn/connection/states.py", line 307, in run_tasks
await self.context.split_tunneling.set_config(
...<2 lines>...
)
File "/usr/lib/python3.14/site-packages/proton/vpn/daemon/split_tunneling/client.py", line 158, in set_config
raise exceptions.SplitTunnelingError(
...<2 lines>...
) from excp
proton.vpn.split_tunneling.exceptions.SplitTunnelingError: Error setting new split tunneling configuration for 1000
2026-02-08T22:22:34.463617+00:00 | proton.vpn.core.connection:508 | INFO | CONN:STATE_CHANGED | Connected
Additionally, systemctl status proton.VPN shows the following:
feb 09 00:22:11 cachyos-x8664 systemd[1]: Starting Proton VPN Daemon...
feb 09 00:22:11 cachyos-x8664 python3[999]: 2026-02-08T22:22:11.491973+00:00 | __main__:41 | INFO | Starting Proton VPN daemon v0.13.4
feb 09 00:22:11 cachyos-x8664 systemd[1]: Started Proton VPN Daemon.
feb 09 00:22:28 cachyos-x8664 python3[999]: 2026-02-08T22:22:28.469843+00:00 | proton.vpn.daemon.split_tunneling.split_tunneling:63 | INFO | Clearing config for user 1000
feb 09 00:22:30 cachyos-x8664 python3[999]: 2026-02-08T22:22:30.695170+00:00 | proton.vpn.daemon.split_tunneling.split_tunneling:49 | INFO | Setting SplitTunnelingConfig(mode=<SplitTunnelingMode.INCLUDE: >
feb 09 00:22:30 cachyos-x8664 python3[999]: 2026-02-08T22:22:30.696620+00:00 | proton.vpn.daemon.split_tunneling.apps.socket_monitor:114 | INFO | Starting socket monitor (with fwmark 13501235)
feb 09 00:22:30 cachyos-x8664 python3[999]: 2026-02-08T22:22:30.696798+00:00 | proton.vpn.daemon.split_tunneling.apps.process_monitor:100 | INFO | Starting process monitor
feb 09 00:22:30 cachyos-x8664 python3[999]: 2026-02-08T22:22:30.768985+00:00 | proton.vpn.daemon.split_tunneling.apps.process_matcher:134 | INFO | Existing processes inspected in 72 ms
feb 09 00:22:34 cachyos-x8664 python3[999]: cannot attach kprobe, Invalid argument
Please complete the following checklist (by adding [x]):
Kernel Version: 6.18.9-2 cachyos, also tested with 6.12.69-2 cachyos and 6.12.69-1 unpatched kernel.
Expected Behaviour: With split tunneling enabled, traffic should only be tunneled through the VPN for the included apps.
Actual Behaviour: Split tunneling shows up as enabled in the app, but upon connecting to the VPN, the specified rules are not applied.
in
~/.cache/Proton/VPN/logs/vpn-app.log, the following is logged when connecting:Additionally,
systemctl status proton.VPNshows the following: