diff --git a/app/build.gradle b/app/build.gradle
index 8f0ec3513e5480b4450e49fa07e23e6ec6899c01..33720e9d105083c9efb1879b176b99929e27783c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -75,7 +75,7 @@ dependencies {
     implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
 
     //Matrix
-    implementation 'org.matrix.android:matrix-sdk-android:1.4.17'
+    implementation 'org.matrix.android:matrix-sdk-android:1.4.27'
 
     //Kotlin
     implementation "androidx.core:core-ktx:1.8.0"
diff --git a/app/src/main/java/org/futo/circles/extensions/MatrixUserRoleExtensions.kt b/app/src/main/java/org/futo/circles/extensions/MatrixUserRoleExtensions.kt
index 897cb54dd00cd869e79afce51f712f63a2933bcc..76b51d437879b79c49d7ff16413d21ee7c5b8ceb 100644
--- a/app/src/main/java/org/futo/circles/extensions/MatrixUserRoleExtensions.kt
+++ b/app/src/main/java/org/futo/circles/extensions/MatrixUserRoleExtensions.kt
@@ -2,6 +2,7 @@ package org.futo.circles.extensions
 
 import org.futo.circles.R
 import org.futo.circles.provider.MatrixSessionProvider
+import org.matrix.android.sdk.api.query.QueryStringValue
 import org.matrix.android.sdk.api.session.events.model.EventType
 import org.matrix.android.sdk.api.session.events.model.toModel
 import org.matrix.android.sdk.api.session.getRoom
@@ -63,7 +64,7 @@ fun PowerLevelsContent.getCurrentUserPowerLevel(): Int {
 fun getPowerLevelContent(roomId: String): PowerLevelsContent? {
     val session = MatrixSessionProvider.currentSession ?: return null
     val room = session.getRoom(roomId) ?: return null
-    return room.getStateEvent(EventType.STATE_ROOM_POWER_LEVELS)?.content.toModel<PowerLevelsContent>()
+    return room.getStateEvent(EventType.STATE_ROOM_POWER_LEVELS, QueryStringValue.IsEmpty)?.content.toModel<PowerLevelsContent>()
 }
 
 fun getCurrentUserPowerLevel(roomId: String): Int {
diff --git a/app/src/main/java/org/futo/circles/feature/room/manage_members/ManageMembersDataSource.kt b/app/src/main/java/org/futo/circles/feature/room/manage_members/ManageMembersDataSource.kt
index a84723947afadda6cee0423c4a52a31cee55931e..0120632fdc53465d1ab920de66379dc75890030f 100644
--- a/app/src/main/java/org/futo/circles/feature/room/manage_members/ManageMembersDataSource.kt
+++ b/app/src/main/java/org/futo/circles/feature/room/manage_members/ManageMembersDataSource.kt
@@ -3,6 +3,8 @@ package org.futo.circles.feature.room.manage_members
 
 import android.content.Context
 import androidx.lifecycle.asFlow
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.*
 import org.futo.circles.R
 import org.futo.circles.core.ExpandableItemsDataSource
 import org.futo.circles.extensions.createResult
@@ -11,8 +13,6 @@ import org.futo.circles.mapping.toGroupMemberListItem
 import org.futo.circles.mapping.toInvitedUserListItem
 import org.futo.circles.model.*
 import org.futo.circles.provider.MatrixSessionProvider
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.flow.*
 import org.matrix.android.sdk.api.query.QueryStringValue
 import org.matrix.android.sdk.api.session.events.model.EventType
 import org.matrix.android.sdk.api.session.events.model.toContent
@@ -28,7 +28,7 @@ class ManageMembersDataSource(
     private val roomId: String,
     private val type: CircleRoomTypeArg,
     private val context: Context
-):ExpandableItemsDataSource {
+) : ExpandableItemsDataSource {
 
     private val session = MatrixSessionProvider.currentSession
     private val room = session?.getRoom(roomId)
@@ -62,7 +62,9 @@ class ManageMembersDataSource(
     }
 
     private fun getRoomMembersRoleFlow(): Flow<PowerLevelsContent> {
-        return room?.stateService()?.getStateEventLive(EventType.STATE_ROOM_POWER_LEVELS)?.asFlow()
+        return room?.stateService()
+            ?.getStateEventLive(EventType.STATE_ROOM_POWER_LEVELS, QueryStringValue.IsEmpty)
+            ?.asFlow()
             ?.mapNotNull { it.getOrNull()?.content.toModel<PowerLevelsContent>() } ?: flowOf()
     }
 
diff --git a/app/src/main/java/org/futo/circles/feature/timeline/data_source/TimelineDataSource.kt b/app/src/main/java/org/futo/circles/feature/timeline/data_source/TimelineDataSource.kt
index e1776757a75d07bde816995cf1c8d71d5ba9f6b7..26343accecaf8f984d06935c737534d6e4d7f7f0 100644
--- a/app/src/main/java/org/futo/circles/feature/timeline/data_source/TimelineDataSource.kt
+++ b/app/src/main/java/org/futo/circles/feature/timeline/data_source/TimelineDataSource.kt
@@ -9,6 +9,7 @@ import org.futo.circles.model.Post
 import org.futo.circles.provider.MatrixSessionProvider
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.mapNotNull
+import org.matrix.android.sdk.api.query.QueryStringValue
 import org.matrix.android.sdk.api.session.events.model.EventType
 import org.matrix.android.sdk.api.session.events.model.toModel
 import org.matrix.android.sdk.api.session.getRoom
@@ -30,7 +31,7 @@ class TimelineDataSource(
     val roomTitleLiveData = room?.getRoomSummaryLive()?.map { it.getOrNull()?.nameOrId() }
     val timelineEventsLiveData = MutableLiveData<List<Post>>()
     val accessLevelFlow =
-        room?.stateService()?.getStateEventLive(EventType.STATE_ROOM_POWER_LEVELS)?.asFlow()
+        room?.stateService()?.getStateEventLive(EventType.STATE_ROOM_POWER_LEVELS, QueryStringValue.IsEmpty)?.asFlow()
             ?.mapNotNull { it.getOrNull()?.content.toModel<PowerLevelsContent>() } ?: flowOf()
 
     private var timelines: MutableList<Timeline> = mutableListOf()
diff --git a/app/src/main/java/org/futo/circles/provider/MatrixSessionProvider.kt b/app/src/main/java/org/futo/circles/provider/MatrixSessionProvider.kt
index cd208f974cd7e293fb142d71156b6ad88078132f..a2904882a2c36b80e36b2391d3889de7a0e54606 100644
--- a/app/src/main/java/org/futo/circles/provider/MatrixSessionProvider.kt
+++ b/app/src/main/java/org/futo/circles/provider/MatrixSessionProvider.kt
@@ -30,7 +30,7 @@ object MatrixSessionProvider {
 
     private fun startSession(session: Session, listener: Session.Listener? = null) {
         listener?.let { session.addListener(it) }
-        currentSession = session.apply { open(); startSync(true) }
+        currentSession = session.apply { open(); syncService().startSync(true) }
     }
 
     suspend fun awaitForSessionStart(session: Session) =