---
title: Release Notes: Kotlin v4.5
slug: v4-5/kotlin/release-notes
docTags: 
createdAt: 2023-11-15T00:54:41.303Z
---

# Kotlin Version 4.5.4

**Fixed**

Intermittent crash when syncing over Bluetooth LE GATT with "DataTooLarge" error (#9789)

**Added**

Additional logging in the rare case an exception is thrown during a live query callback. (#11644)

# Kotlin Version 4.5.3

**Fix**

- A crash in Android bluetooth subsystem (#11467)

# Kotlin Version 4.5.2

**Added**

- `DittoTransportConfig` and all Ditto types that appear inside a `DittoTransportConfig` now implement Cloneable (#10972)

**Fixed**

- Calling `startSync`, then stopSync, and then `startSync` again no longer leads to all transports being disabled (#10972)
- If using an `OnlinePlayground` or `OnlineWithAuthentication` identity with `enableDittoCloudSync` set to true then a WebSocket connection to Ditto's cloud will now be preserved if/when the Ditto instance's transport config is updated. (#10972)


# Kotlin Version 4.5.1

**Added**

- Support for light JWTs (separating identity data)

**Fixed**

- A potential panic if an `f64::Nan is compared to a u64 or i64 during collation`
- Presence observers are now correctly removed when passed to `removeObserver()`

# Kotlin Version 4.5.0

:::hint{type="success"}
If you are upgrading from v4.x to v4.5 without adopting any new functionality there will be no changes required and all other v4.x devices will sync with v4.5 devices.

v4.5 follows semver and is backwards compatible with all previous v4 versions. All changes in v4.5 are additive and don’t require any additional work when upgrading.
:::

:::hint{type="warning"}
If you plan on adopting DQL as part of the migration to v4.5 review [Legacy-to-DQL Adoption Guide](docId\:e2ZbKPkQwYMyXW5pN4rjM)

***Note:*** All existing APIs and queries (eg. `find` , `findById` , `observe` , ect.) will remain supported for the foreseeable future. We will notify customers with advanced warning when we plan to end of life these APIs.
:::

**Added**

- `VERSION` static property to the `Ditto` class. (#10223)
- `DittoError.FatalError` data class. (#10536)
- `DittoStore.execute()` method for querying the store using the new Ditto Query Language. (#8354)
- `DittoSyncSubscription` class for managing sync subscriptions. (#8354, #10536)
- `DittoSync` class whose `registerSubscription()` method allows for controlling sync using Ditto Query Language. (#8354, #10536)
- `registerObserver()` method to the `DittoStore` class. (#8354, #10536)

**Deprecated**

- `DittoLanConfig.multicastEnabled` property. (#10126)
- `DittoError.InternalErrorReason` data class. These very unlikely exceptions will be thrown as `FatalError` instea. (#10536)

**Changed**

- Failure to load the Ditto native binary now throws a `FatalError` instead of aborting the process. (#10015)
- `DittoError.FailedToEncodeValue.error` has been replaced with `FailedToEncodeValue.message` which is a simple string type, reducing API dependency on Jackson/FasterXML. (#10536

**Improved**

- Performance by implementing bipartite distance-aware mesh topology. (#10632)
- Memory usage and performance of Documents. (#10736)
- Reduced metadata accumulation after eviction by clearing remote summaries. (#7065)
- Serialization performance. (#9112)

**Fixed**

- The Android log level could not be set to a more verbose level at runtime under certain circumstances. (#10786)
- LAN P2P transport fails to stop. (#8809)
- Made logging more robust to failed writes in a specific set of circumstances. (#10077)
- Addressed a warning from SQLite that sometimes occurs on startup about a schema change. (#10501)
- Presence graph may not show all active connections. (#10507)
- When observing peers, isConnectedToDittoCloud property may be incorrect. (#10534)
- initial logging events now use the same format as all other logs. (#10611)
- mesh could choose random connections. (#10711)
- A bug with Ditto's internal crash handler. (#10022)

:::hint{type="info"}
To access release notes for earlier Ditto versions, go to [v4.4](https://docs.ditto.live/v4-4) of the documentation by clicking the version picker located in the upper left corner and selecting **4.4** from the menu.
:::

