diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2e34e39cab8..2fda808c1e3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
 # Changelog
 
+## 0.9.7
+
+* `Repos`:
+    * `Exposed`:
+        * Fix in `ExposedOneToManyKeyValueRepo` - now it will not use `insertIgnore`
+* `Ktor`:
+    * `Server`:
+        * `Route#includeWebsocketHandling` now will check that `WebSockets` feature and install it if not
+
 ## 0.9.6
 
 * `Repos`:
diff --git a/gradle.properties b/gradle.properties
index bf512cd5da5..12b4beb8694 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -45,5 +45,5 @@ dokka_version=1.6.10
 # Project data
 
 group=dev.inmo
-version=0.9.6
-android_code_version=96
+version=0.9.7
+android_code_version=97
diff --git a/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/server/FlowsWebsocket.kt b/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/server/FlowsWebsocket.kt
index bd7d9a32670..d26cd03cb08 100644
--- a/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/server/FlowsWebsocket.kt
+++ b/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/server/FlowsWebsocket.kt
@@ -2,25 +2,23 @@ package dev.inmo.micro_utils.ktor.server
 
 import dev.inmo.micro_utils.coroutines.safely
 import dev.inmo.micro_utils.ktor.common.*
+import io.ktor.application.featureOrNull
+import io.ktor.application.install
 import io.ktor.http.cio.websocket.*
 import io.ktor.routing.Route
+import io.ktor.routing.application
 import io.ktor.websocket.webSocket
 import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.collect
 import kotlinx.serialization.SerializationStrategy
 
-private suspend fun DefaultWebSocketSession.checkReceivedAndCloseIfExists() {
-    if (incoming.tryReceive() != null) {
-        close()
-        throw CorrectCloseException
-    }
-}
-
 fun <T> Route.includeWebsocketHandling(
     suburl: String,
     flow: Flow<T>,
     converter: (T) -> StandardKtorSerialInputData
 ) {
+    application.apply {
+        featureOrNull(io.ktor.websocket.WebSockets) ?: install(io.ktor.websocket.WebSockets)
+    }
     webSocket(suburl) {
         safely {
             flow.collect {
diff --git a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/onetomany/ExposedOneToManyKeyValueRepo.kt b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/onetomany/ExposedOneToManyKeyValueRepo.kt
index 20a0e57af1c..0c839ea7834 100644
--- a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/onetomany/ExposedOneToManyKeyValueRepo.kt
+++ b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/onetomany/ExposedOneToManyKeyValueRepo.kt
@@ -35,10 +35,15 @@ open class ExposedOneToManyKeyValueRepo<Key, Value>(
                     if (select { keyColumn.eq(k).and(valueColumn.eq(v)) }.limit(1).count() > 0) {
                         return@mapNotNull null
                     }
-                    insertIgnore {
+                    val insertResult = insert {
                         it[keyColumn] = k
                         it[valueColumn] = v
-                    }.getOrNull(keyColumn) ?.let { k to v }
+                    }
+                    if (insertResult.insertedCount > 0) {
+                        k to v
+                    } else {
+                        null
+                    }
                 } ?: emptyList()
             }
         }.forEach { _onNewValue.emit(it) }