A non-official, user-friendly OpenVPN® client for iOS. Soon for macOS.

Frequently Asked Questions

My provider is not listed

You should contact with your provider to double check if there is interest in being added to Passepartout. Beware that some may be concerned instead. Ultimately, you can submit your provider request for a viability review to

Why is compression not supported?

UPDATE: due to user demands and broader compatibility, today Passepartout does support compression, but LZO only. Both --comp-lzo [yes] and --compress lzo are now legal options. Other algorithms (e.g. LZ4) are not supported and never will. All in all, the use of compression is still discouraged.


Some users may have noticed that Passepartout is was not compatible with any compression algorithm supported by OpenVPN. This is was intentional and comes came from a logical reasoning. Besides being a relevant overhead against marginal gains -most protocols in the application layer (e.g. HTTP) already use compression nowadays-, compression is vulnerable to an attack that may be able to reveal the secret session keys.

The attack is called VORACLE and is extensively explained by the very authors of OpenVPN. Most major providers have taken action and fixed the issue, but many are still refraining to disable compression for no acceptable reason. In case this happens, you are warmly encouraged to report the issue immediately and possibly link to either the official resource you find above, as it comes directly from the software makers, or this page.

BEWARE: it’s not about making the app work, this is about your safety. Do prompt your provider to disable compression ASAP. Most of the time it’s as easy as tweaking a single configuration line on their backends.

Keeping it broken is absolutely irresponsible.

I’m on Wi-Fi but my device shows I’m connected via LTE

The Wi-Fi/LTE icon (replace LTE with any cellular signal) while on VPN has been broken since iOS 10 or the like. It’s something that Apple is unable to fix or doesn’t bother fixing.

You should do a simple test. Verify your data consumption with your LTE provider website, normally phone providers have that. Now, when on VPN and the LTE icon appears in spite of Wi-Fi, download a relevant chunk of data. You may then learn that the plan is unaffected, implying that you’re actually connected via Wi-Fi.

I haven’t found a workaround for this and it’s been there for almost two years. Yeah, it’s a shame.

The configuration file contains an unsupported option (external file)

Due to easier interoperability, the app does not support external files in the .ovpn main configuration. That’s because more often than not, it may not make sense referring to relative paths in a mobile device environment. Think of the Mail app for example. The fix is straightforward though, say you have an external ca file:

ca my-ca.crt

Just replace it with:

content of my-ca.crt

The same applies to other settings like cert, key, tls-auth and tls-crypt.

The VPN connects but immediately disconnects with “Encryption failed”

This happens when you rely on default OpenVPN encryption, which is normally Blowfish. The algorithm, besides being unsupported by Passepartout, is also weak and therefore discouraged. In order to fix this issue, you must switch to AES encryption. Passepartout only supports AES, be it in CBC or GCM mode.

Set encryption explicitly in the server configuration, e.g.:

cipher AES-128-CBC
auth SHA1

and don’t forget to update the client .ovpn as well with the exact same parameters.

If you want to leverage newer AES-GCM encryption, you could just use:

ncp-ciphers AES-256-GCM   # or AES-128-GCM

and the client wouldn’t need to change a thing, because the algorithm will be enforced by the server no matter what.

Why don’t Siri Shortcuts execute in the background?

Unfortunately Apple is guilty of not fixing a related bug. I mean, it’s been there for years -since iOS 9 with my first bug report dating back to 2017- without them caring at all. No feedback and not even a proper response. And of course, no progress.

This is one of the several threads remarking the issue:

Now, due to this bug, App Extensions can’t control VPN using custom protocols -Siri Intents Extension in this case, in order to run shortcuts in the background. Only native VPN protocols work (IKEv2, IPsec etc.).

In short, there’s really nothing I can do about it.

It seems that my traffic doesn’t necessarily go through the VPN

Unless redirect-gateway is either:

the default gateway is NOT changed. That is, your external IP won’t be the VPN’s IP. Double check the “Default gateway” entry in the “Configuration” page to see how your host profile looks like. On the other hand, the default gateway is always enforced for provider profiles.

This has been recently fixed in Passepartout 1.6.0 as it’s the standard OpenVPN behavior. Before 1.6.0, Passepartout erroneously assumed that all traffic should go through the VPN implicitly.

Try this website to test your external IP before and after this change.

I’d like to see a Today Widget in the Notification Center

The reason behind not providing a widget is exactly the same as Siri Shortcuts. A widget would still need to open the app, thus making it quite useless.

I’d like to see my IP address in the app

The reason why Passepartout does not present any personal information in app is privacy. Obtaining one’s IP address, regardless of being connected to a VPN or not, involves querying -and trusting- a third party service. Knowing such info is also of little use, given that most of the time you don’t want to share your VPN IP address and therefore link your identity to it. However, this feature might be introduced later as a diagnostic tool.

Mullvad ignores my custom DNS settings

It looks like Mullvad “hijacks” DNS on default endpoints, making custom DNS settings irrelevant. In order to do custom DNS with Mullvad, make sure to explicitly pick the “Custom DNS” preset, which will let you connect to the UDP:1400 and TCP:1401 endpoints. These endpoints do support custom DNS servers instead.

Until version 1.7.0 for iOS, you will have to do a manual “Refresh infrastructure” in order to access the new preset.

Read the related report on GitHub.