---
title: Kill SDK
slug: web-view-sdk-kill-sdk
createdAt: 2026-11-03T10:14:16.041Z
---

Kill the SDK when your app no longer needs the chat. It ends the conversation as [End Chat](docId\:uCgQWla-zeq6uPJDBKGUX) does, then stops the SDK

::::Tabs
:::Tab{title="iOS"}
```swift
Task {
    await KindlyWebViewSDK.kill()
}
```
:::

:::Tab{title="Android"}
```kotlin
lifecycleScope.launch {
    KindlyWebViewSDK.kill().await()
}
```
:::

:::Tab{title="Flutter"}
```dart
await KindlyWebViewSDK.kill();
```
:::

:::Tab{title="React Native"}
```typescript
await KindlyWebViewSDK.kill();
```
:::
::::

Call `start` again before anything else. The link delegate stays set, the auth provider does not, so pass it to `start` again

To switch to another bot or market you do not need `kill`: call `start` with the new ones, and the SDK closes the current chat itself, see [Initialization](docId\:MqmlgrN2Nv8ye8otUkYqC)

## Close, end or kill

|                                            | Chat screen | Conversation                                 | SDK                            |
| ------------------------------------------ | ----------- | -------------------------------------------- | ------------------------------ |
| [Close Chat](docId\:GoowcByKs8CVJelALefVN) | Dismissed   | Kept, and the page stays loaded              | Started                        |
| [End Chat](docId\:uCgQWla-zeq6uPJDBKGUX)   | Dismissed   | Ended, and the next display starts a new one | Started                        |
| Kill SDK                                   | Dismissed   | Ended                                        | Stopped until the next `start` |

`endChat` and `kill` finish only once the conversation is ended and its storage deleted: on iOS when the `async` call returns, on Android when the `Deferred` completes, and in Flutter and React Native when the future or promise completes. Await them when the order of calls matters, for example before a `start` for another user
