OpenVPN client to personal OpenVPN server fails. "Failed to parse json data unexpected character"

Greetings,

New AX3000 running latest firmware (4.5.16 release 3). Setting up OpenVPN client in AX3000 to connect to a private OpenVPN server. The config files provided by the OpenVPN server work on OpenVPN clients on iPhone and Tunnelblick VPN client on MacOS.

AX3000 OPenVPN client log:

Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):    * Rule 'process_mark'
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):    * Rule 'wan_in_conn_mark'
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):    * Rule 'lan_in_conn_mark_restore'
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):    * Rule 'out_conn_mark_restore'
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):    * Zone 'lan'
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):    * Zone 'wan'
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):    * Zone 'guest'
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):    * Zone 'ovpnclient'
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):  * Set tcp_ecn to off
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):  * Set tcp_syncookies to on
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):  * Set tcp_window_scaling to on
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):  * Running script '/etc/firewall.nat6'
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):  * Running script '/etc/firewall.swap_wan_in_conn_mark.sh'
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):  * Running script '/etc/firewall.vpn_server_policy.sh'
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):  * Running script '/var/etc/gls2s.include'
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):    ! Skipping due to path error: No such file or directory
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577):  * Running script '/usr/bin/gl_block.sh'
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577): Failed to parse json data: unexpected character
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577): uci: Entry not found
Mon Jun  3 11:03:36 2024 daemon.notice netifd: ovpnclient (26577): cat: can't open '/tmp/run/ovpn_resolved_ip': No such file or directory

OpenVPN Client Config File:

client
remote my.openvpnserver.tld 1194
dev tun
proto udp
resolv-retry infinite
nobind
user nobody
group nobody
ca [inline]
cert [inline]
key [inline]
persist-key
persist-tun
ns-cert-type server
comp-lzo
verb 9
auth-user-pass

<key>
-----BEGIN PRIVATE KEY-----
/* actual key data omitted for privacy */
-----END PRIVATE KEY-----
</key>

<cert>
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: XXXXXXX (0xXXXXXXXXX)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=XX, L=XXXXXXXX, O=XXXXX, OU=Corporate, CN=ca.myopenvpnserver/emailAddress=security@mydomain, O=XXXXXXXXX, ST=XXXXXXXXXX
        Validity
            Not Before: Jun  3 01:26:28 2024 GMT
            Not After : Jun  1 01:26:28 2034 GMT
        Subject: C=XX, ST=XXXXXXXXX, L=XXXXXX, O=XXXXXXXXX, OU=XXXXXXXX, CN=username/emailAddress=xxxxx@xxxxxxxx.xxx
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    /* actual key data omitted for privacy */
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            X509v3 Key Usage:
                Digital Signature, Non Repudiation, Key Encipherment
            X509v3 Subject Alternative Name:
                DNS:user@xxxxxxxxx.xxx
            Netscape Cert Type:
                SSL Client, S/MIME, Object Signing
    Signature Algorithm: sha256WithRSAEncryption
         /* actual key data omitted for privacy */
-----BEGIN CERTIFICATE-----
/* actual key data omitted for privacy */
-----END CERTIFICATE-----
</cert>

<ca>
-----BEGIN CERTIFICATE-----
/* actual key data omitted for privacy */
-----END CERTIFICATE-----
</ca>

I have tried multiple edits including adding and removing the "ca [inline] cert [inline] key [inline]" lines as well as adding the full ca-cert.pem or just the actual ca-cert.pem key data block.

Error is the same every time. The VPN connection starts but never finishes. AX3000 error logs show as above. Some files missing (inside the AX3000) and the JSON parse error. I do not see any documentation that the OpenVPN client file needs to be in json format.

Any help is appreciated.

Is the server on the same network as the client?

The log is actually only showing no vpn policy configured. Not the reason why vpn is not connected.

Pls check if you are conncting to the vpn in the same network as the vpn server.

You can also send me a working config and I can debug quickly.

For security reasons I cannot share the config file with key data. The config file is what I posted here, minus the actualy security information.

I am not on the same network. In fact I am able to connect to the OpenVPN server from a laptop connected to AX3000 LAN using the config file. The AX3000 cannot connect to the OpenVPN server. The laptop is disconnected from OpenVPN server when I try to connect with AX3000.

What if you increase verbosity to 11?

verb 11

Pls get more log. I don't see the actually opvn connection log.

You don't need to send me username and password, just send me a complete ovpn file, is this OK?

I can test the compatibility of the parameters. Generally this is the reason that no log is generated if the ovpn process just quit.

The entire .ovpn file is there in the original post. All I changed was the identifying information and actual security key contents.

The OpenVPN client log in the VPN dashboard doesn't show much other than what I posted. The router main log shows much more:

Mon Jun  3 14:12:20 2024 daemon.notice netifd: Interface 'ovpnclient' is setting up now
Mon Jun  3 14:12:20 2024 daemon.warn ovpnclient[10026]: --cipher is not set. Previous OpenVPN version defaulted to BF-CBC as fallback when cipher negotiation failed in this case. If you need this fallback please add '--data-ciphers-fallback BF-CBC' to your configuration and/or add BF-CBC to --data-ciphers.
Mon Jun  3 14:12:20 2024 daemon.notice ovpnclient[10026]: OpenVPN 2.5.3 aarch64-openwrt-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD]
Mon Jun  3 14:12:20 2024 daemon.notice ovpnclient[10026]: library versions: OpenSSL 1.1.1q  5 Jul 2022, LZO 2.10
Mon Jun  3 14:12:20 2024 daemon.warn ovpnclient[10026]: WARNING: --ns-cert-type is DEPRECATED.  Use --remote-cert-tls instead.
Mon Jun  3 14:12:20 2024 daemon.warn ovpnclient[10026]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Mon Jun  3 14:12:20 2024 daemon.notice ovpnclient[10026]: Control Channel MTU parms [ L:1621 D:1212 EF:38 EB:0 ET:0 EL:3 ]
Mon Jun  3 14:12:20 2024 daemon.notice ovpnclient[10026]: Data Channel MTU parms [ L:1621 D:1450 EF:121 EB:406 ET:0 EL:3 ]
Mon Jun  3 14:12:20 2024 daemon.notice ovpnclient[10026]: crypto_adjust_frame_parameters: Adjusting frame parameters for crypto by 40 bytes
Mon Jun  3 14:12:20 2024 daemon.notice ovpnclient[10026]: calc_options_string_link_mtu: link-mtu 1621 -> 1541
Mon Jun  3 14:12:20 2024 daemon.notice ovpnclient[10026]: crypto_adjust_frame_parameters: Adjusting frame parameters for crypto by 40 bytes
Mon Jun  3 14:12:20 2024 daemon.notice ovpnclient[10026]: calc_options_string_link_mtu: link-mtu 1621 -> 1541
Mon Jun  3 14:12:20 2024 daemon.notice ovpnclient[10026]: Local Options String (VER=V4): 'V4,dev-type tun,link-mtu 1541,tun-mtu 1500,proto UDPv4,auth SHA1,keysize 128,key-method 2,tls-client'
Mon Jun  3 14:12:20 2024 daemon.notice ovpnclient[10026]: Expected Remote Options String (VER=V4): 'V4,dev-type tun,link-mtu 1541,tun-mtu 1500,proto UDPv4,auth SHA1,keysize 128,key-method 2,tls-server'
Mon Jun  3 14:12:20 2024 daemon.err ovpnclient[10026]: failed to find GID for group nobody: Resource temporarily unavailable (errno=11)
Mon Jun  3 14:12:20 2024 daemon.notice ovpnclient[10026]: Exiting due to fatal error
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: Section @zone[1] (wan) cannot resolve device of network 'wan6'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: Section @zone[1] (wan) cannot resolve device of network 'wwan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: Section @zone[2] (guest) cannot resolve device of network 'guest'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: Option 'ovpnclient'.masq6 is unknown
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: Section 'ovpnclient' cannot resolve device of network 'ovpnclient'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: Section 'block_dns' does not specify a protocol, assuming TCP+UDP
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: Section 'wan_in_conn_mark' does not specify a protocol, assuming TCP+UDP
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: Section 'lan_in_conn_mark_restore' does not specify a protocol, assuming TCP+UDP
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: Section 'out_conn_mark_restore' does not specify a protocol, assuming TCP+UDP
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: Section @zone[2] (guest) has no device, network, subnet or extra options
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: Section @zone[3] (ovpnclient) has no device, network, subnet or extra options
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Clearing IPv4 filter table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Clearing IPv4 nat table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Clearing IPv4 mangle table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Clearing IPv4 raw table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Populating IPv4 filter table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-DHCP-Renew'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-IGMP'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-IPSec-ESP'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-ISAKMP'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'block_dns'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-DHCP'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-DNS'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Forward 'ovpnclient' -> 'wan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Forward 'lan' -> 'ovpnclient'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Forward 'guest' -> 'ovpnclient'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'lan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'wan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'guest'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'ovpnclient'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Populating IPv4 nat table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'lan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'wan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'guest'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'ovpnclient'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Populating IPv4 mangle table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'process_mark'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'wan_in_conn_mark'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'lan_in_conn_mark_restore'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'out_conn_mark_restore'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'lan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'wan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'guest'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'ovpnclient'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Populating IPv4 raw table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'lan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):      - Using automatic conntrack helper attachment
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'wan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'guest'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):      - Using automatic conntrack helper attachment
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'ovpnclient'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Clearing IPv6 filter table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Clearing IPv6 nat table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Clearing IPv6 mangle table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Populating IPv6 filter table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-DHCPv6'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-MLD'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-ICMPv6-Input'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-ICMPv6-Forward'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-IPSec-ESP'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-ISAKMP'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'block_dns'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-DHCP'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'Allow-DNS'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Forward 'ovpnclient' -> 'wan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Forward 'lan' -> 'ovpnclient'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Forward 'guest' -> 'ovpnclient'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'lan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'wan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'guest'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'ovpnclient'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Populating IPv6 nat table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: fw3_ipt_rule_append(): Can't find target 'prerouting_lan_rule'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: fw3_ipt_rule_append(): Can't find target 'postrouting_lan_rule'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: fw3_ipt_rule_append(): Can't find target 'prerouting_wan_rule'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: fw3_ipt_rule_append(): Can't find target 'postrouting_wan_rule'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: fw3_ipt_rule_append(): Can't find target 'prerouting_guest_rule'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: fw3_ipt_rule_append(): Can't find target 'postrouting_guest_rule'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: fw3_ipt_rule_append(): Can't find target 'prerouting_ovpnclient_rule'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: fw3_ipt_rule_append(): Can't find target 'postrouting_ovpnclient_rule'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: fw3_ipt_rule_append(): Can't find target 'prerouting_rule'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Warning: fw3_ipt_rule_append(): Can't find target 'postrouting_rule'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'lan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'wan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'guest'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'ovpnclient'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Populating IPv6 mangle table
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'process_mark'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'wan_in_conn_mark'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'lan_in_conn_mark_restore'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Rule 'out_conn_mark_restore'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'lan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'wan'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'guest'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    * Zone 'ovpnclient'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Set tcp_ecn to off
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Set tcp_syncookies to on
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Set tcp_window_scaling to on
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Running script '/etc/firewall.nat6'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Running script '/etc/firewall.swap_wan_in_conn_mark.sh'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Running script '/etc/firewall.vpn_server_policy.sh'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Running script '/var/etc/gls2s.include'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):    ! Skipping due to path error: No such file or directory
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028):  * Running script '/usr/bin/gl_block.sh'
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): Failed to parse json data: unexpected character
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): uci: Entry not found
Mon Jun  3 14:12:20 2024 daemon.notice netifd: ovpnclient (10028): cat: can't open '/tmp/run/ovpn_resolved_ip': No such file or directory
Mon Jun  3 14:12:20 2024 user.notice root: openvpn process exit and try again 5 seconds later
Mon Jun  3 14:12:25 2024 daemon.notice netifd: Interface 'ovpnclient' is now down```

Pls remove these two lines and upload again.

user nobody
group nobody

That worked like a champ. Removing user and group from .ovpn file fixed it.

Well done!