Network connection failed :unknown reason:

Im on RHEL, and found that my VPN stopped working.

I discovered that I could use the command line utility, nmcli, to try to get more info about what was happening.

However, Im finding that the vpn still seems to fail and the error has no clear meaning:

[jvyas@jvyas jvyas]# nmcli con up id "XXXXXXXXX"
Active connection state: unknown
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/11
state: VPN connecting (need authentication) (2)
state: VPN connecting (3)
state: VPN connecting (getting IP configuration) (4)suggested tags: vpnnetworkingwireless-networking
Error: Connection activation failed: unknown reason.

So , to try some googling - I found the switch statement that this error message is being returned from, and it looks like most conditions are handled pretty well, which means something very funny must be going wrong when i try to connect to VPN:

+static const char *
+vpn_connection_state_reason_to_string (NMVPNConnectionStateReason reason)
+{
+ switch (reason) {
+ case NM_VPN_CONNECTION_STATE_REASON_UNKNOWN:
+ return _("unknown reason");
+ case NM_VPN_CONNECTION_STATE_REASON_NONE:
+ return _("none");
+ case NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED:
+ return _("the user was disconnected");
+ case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED:
+ return _("the base network connection was interrupted");
+ case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED:
+ return _("the VPN service stopped unexpectedly");
+ case NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID:
+ return _("the VPN service returned invalid configuration");
+ case NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT:
+ return _("the connection attempt timed out");
+ case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT:
+ return _("the VPN service did not start in time");
+ case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED:
+ return _("the VPN service failed to start");
+ case NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS:
+ return _("no valid VPN secrets");
+ case NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED:
+ return _("invalid VPN secrets");
+ case NM_VPN_CONNECTION_STATE_REASON_CONNECTION_REMOVED:
+ return _("the connection was removed");
+ default:
+ return _("unknown");
+ }

The above switch statement looks pretty comprehensive ! I wonder... what ELSE could possibly be going wrong with my vpn connection attempt?

Im assuming maybe there are some directories or files whose permissions may have recently been modified or corrupted... maybe there is a way to reset my nmcli (or its config files, or whatever else may have suddenly gone wrong) to previous settings?

***** UPDATE ********

My acute issue was due to a bad password. I think this might constitute a bug in the nm or nmcli app. I assume that it should be possible to interpret if a login is "rejected" with a more explicit error.


Solution 1:

NetworkManager is a bit lacking when it comes to reporting VPN errors. Best thing to do is to consult the VPN sections over here:

https://live.gnome.org/NetworkManager/Debugging

In other words (for openvpn debugging) run in a terminal:

/usr/libexec/nm-openvpn-service --debug

Then fire up your VPN connection and see what happens.