---
title: "removeFromPreferences(completionHandler:)"
framework: networkextension
role: symbol
role_heading: Instance Method
path: "networkextension/nednsproxymanager/removefrompreferences(completionhandler:)"
---

# removeFromPreferences(completionHandler:)

Removes the DNS proxy configuration from the caller’s DNS proxy preferences.

## Declaration

```swift
func removeFromPreferences(completionHandler: @escaping @Sendable ((any Error)?) -> Void)
```

```swift
func removeFromPreferences() async throws
```

## Parameters

- `completionHandler`: A block called when the remove operation completes. If the operation fails, an error instance passed to this block describes the problem. Otherwise, the error is nil. See doc://com.apple.networkextension/documentation/NetworkExtension/NEDNSProxyManagerError for the list of possible errors.

## Discussion

Discussion If you use a device without an installed configuration profile during development, your app can create the DNS proxy configuration from scratch. You first call the loadFromPreferences(completionHandler:) method to retrieve the empty configuration. You then make updates and call the saveToPreferences(completionHandler:) method to store them. To remove the configuration, call the removeFromPreferences(completionHandler:) method. This allows you to restore the device to a clean, unconfigured state. In a production environment, however, a configuration profile placed in the system by an external process typically provides the baseline DNS proxy configuration. Your app can modify this configuration at runtime using the same load-modify-save steps, but cannot remove the configuration entirely. An attempt to remove the configuration when a configuration profile is present on the device results in a NEDNSProxyManagerError.configurationCannotBeRemoved error. If the DNS proxy is enabled, it becomes disabled as a result of this call.

## See Also

### Managing the DNS proxy configuration

- [shared()](networkextension/nednsproxymanager/shared().md)
- [loadFromPreferences(completionHandler:)](networkextension/nednsproxymanager/loadfrompreferences(completionhandler:).md)
- [saveToPreferences(completionHandler:)](networkextension/nednsproxymanager/savetopreferences(completionhandler:).md)
