# Migrate from 0.3.0-beta01 to 6.0.0

## Impact of Migration

Version **0.3.0-beta01** was a release that paved the way for version **6.0.0**.

During the development of version **6.0.0**, improvements were made and some breaking changes were implemented.

## What are the implications for your application?

There are two major changes in this new version.

### The SDK Configuration

The first is the “**io.sfbx.appconsent.unifiedsdk.Configuration**” object.\
The **forceGdpr** field has been removed (*this field was no longer in use—therefore, there is no impact on SDK usage*).

### The initialize callback onError

The **onCmpOnError** callback in the SDK’s **initialization method**

```kotlin
public final fun initialize(
context: Context,
configuration: Configuration,
onCmpReady: (Appconsent) -> Unit,
onCmpOnError: (AppconsentExceptions) -> Unit
): Unit
```

A parameter has been added to the callback to provide more information about the type of error that occurred during the initialization phase

### AppconsentExceptions - The new sealed class

This new sealed class implements various subclasses of **RuntimeException**, providing a wealth of information about any exceptions that may occur while using the SDK.

{% hint style="warning" %}
:rotating\_light: Since this class is a **sealed class**, it is important to note that if you EXPLICITLY list all subclasses in a \`**when**\` clause, your code may no longer compile when a new version of the SDK is released.

The compiler will then inform you that you must implement the new class, or display a message stating that one of the exceptions cannot be found if it has been removed from the SDK.
{% endhint %}

We recommend that you explicitly implement exception handling so that you can, for example, stop the SDK initialization or retry it.

In the case of an exception of type: **AppConsentWebviewError**, this error will inform you that the webview used to process your consent could not be instantiated or is not fully functional.

{% hint style="info" %}
*For example, it’s possible that one of your users’ devices doesn’t have a WebView, or that at some point the module was disabled or is currently being updated. In this case, the SDK won’t be able to initialize until the module is available again.*
{% endhint %}

An exception of type **AppConsentAppKeyXXX** will indicate a problem with your **AppKey**; please review the error and contact support if necessary.

### What to do if an error occurs

Try calling the **SFBX.initialize(...)** method again, and if it still returns an error, stop using it until the next time you start your application.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sfbx.io/configuration/step-3-notice-implementation-web-app-tv/android/unified-sdk/migrate-from-0.3.0-beta01-to-6.0.0.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
