diff --git a/activity/activity/src/androidTest/java/androidx/activity/ComponentActivityResultTest.kt b/activity/activity/src/androidTest/java/androidx/activity/ComponentActivityResultTest.kt
index 58dec93..a8ff8a5 100644
--- a/activity/activity/src/androidTest/java/androidx/activity/ComponentActivityResultTest.kt
+++ b/activity/activity/src/androidTest/java/androidx/activity/ComponentActivityResultTest.kt
@@ -28,6 +28,7 @@
 import androidx.core.app.ActivityOptionsCompat
 import androidx.test.core.app.ActivityScenario
 import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.FlakyTest
 import androidx.test.filters.LargeTest
 import androidx.testutils.withActivity
 import com.google.common.truth.Truth.assertThat
@@ -75,6 +76,7 @@
         }
     }
 
+    @FlakyTest(bugId = 249285459)
     @Test
     fun registerInInitTest() {
         ActivityScenario.launch(RegisterInInitActivity::class.java).use { scenario ->
diff --git a/camera/camera-core/src/androidTest/java/androidx/camera/core/internal/utils/ArrayRingBufferTest.kt b/camera/camera-core/src/androidTest/java/androidx/camera/core/internal/utils/ArrayRingBufferTest.kt
index 61c2f9d..ed6a21c 100644
--- a/camera/camera-core/src/androidTest/java/androidx/camera/core/internal/utils/ArrayRingBufferTest.kt
+++ b/camera/camera-core/src/androidTest/java/androidx/camera/core/internal/utils/ArrayRingBufferTest.kt
@@ -18,6 +18,7 @@
 
 import androidx.testutils.assertThrows
 import com.google.common.truth.Truth
+import org.junit.Ignore
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
@@ -38,6 +39,7 @@
         Truth.assertThat(testBuffer.dequeue()).isEqualTo(2)
     }
 
+    @Ignore("b/249127050")
     @Test
     fun testDequeue_correctValueIsDequeued() {
         @Suppress("UNCHECKED_CAST")
diff --git a/core/core/src/androidTest/java/androidx/core/view/WindowInsetsAnimationCompatActivityTest.kt b/core/core/src/androidTest/java/androidx/core/view/WindowInsetsAnimationCompatActivityTest.kt
index 72e9220..7b89e4d 100644
--- a/core/core/src/androidTest/java/androidx/core/view/WindowInsetsAnimationCompatActivityTest.kt
+++ b/core/core/src/androidTest/java/androidx/core/view/WindowInsetsAnimationCompatActivityTest.kt
@@ -307,6 +307,7 @@
         )
     }
 
+    @FlakyTest(bugId = 249124990)
     @Test
     public fun add_animation_listener_first() {
         assumeNotCuttlefish()
diff --git a/glance/glance-appwidget/src/androidAndroidTest/kotlin/androidx/glance/appwidget/GlanceAppWidgetReceiverTest.kt b/glance/glance-appwidget/src/androidAndroidTest/kotlin/androidx/glance/appwidget/GlanceAppWidgetReceiverTest.kt
index 2881f48..d307271 100644
--- a/glance/glance-appwidget/src/androidAndroidTest/kotlin/androidx/glance/appwidget/GlanceAppWidgetReceiverTest.kt
+++ b/glance/glance-appwidget/src/androidAndroidTest/kotlin/androidx/glance/appwidget/GlanceAppWidgetReceiverTest.kt
@@ -81,6 +81,7 @@
 import androidx.glance.text.TextDecoration
 import androidx.glance.text.TextStyle
 import androidx.glance.unit.ColorProvider
+import androidx.test.filters.FlakyTest
 import androidx.test.filters.MediumTest
 import androidx.test.filters.SdkSuppress
 import androidx.test.platform.app.InstrumentationRegistry
@@ -163,6 +164,7 @@
         }
     }
 
+    @FlakyTest(bugId = 249803914)
     @Test
     fun createResponsiveAppWidget() {
         TestGlanceAppWidget.sizeMode =
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java
index 0c91db9..470ddf4 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java
@@ -1588,6 +1588,7 @@
         assertEquals(leftEdge, mGridView.getLayoutManager().findViewByPosition(199).getLeft());
     }
 
+    @FlakyTest(bugId = 249493545)
     @Test
     public void testContinuousSwapBackward() throws Throwable {
         Intent intent = new Intent();
diff --git a/window/window/src/androidTest/java/androidx/window/layout/ExtensionsWindowLayoutInfoAdapterTest.kt b/window/window/src/androidTest/java/androidx/window/layout/ExtensionsWindowLayoutInfoAdapterTest.kt
index 57955d4..81c9235 100644
--- a/window/window/src/androidTest/java/androidx/window/layout/ExtensionsWindowLayoutInfoAdapterTest.kt
+++ b/window/window/src/androidTest/java/androidx/window/layout/ExtensionsWindowLayoutInfoAdapterTest.kt
@@ -29,6 +29,7 @@
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNull
 import org.junit.Assert.assertTrue
+import org.junit.Ignore
 import org.junit.Rule
 import org.junit.Test
 import androidx.window.extensions.layout.FoldingFeature as OEMFoldingFeature
@@ -54,6 +55,7 @@
         }
     }
 
+    @Ignore("b/249124046")
     @Test
     fun testTranslate_windowLayoutInfo() {
         activityScenario.scenario.onActivity { activity ->
