# Room changelog > AndroidX's SQLite persistence library — compile-time-checked queries over a database. - Vendor: Google - Category: Frameworks & Libraries - Official site: https://developer.android.com/jetpack/androidx/releases/room - Tracked by: What's New (https://whatsnew.fyi/product/room) - Harvested from: AI extracted - Entries below: 25 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### 2.8.4 — Version 2.8.4 - Date: 2025-11-19 - Version: 2.8.4 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.8.4 Added a prepared statement cache to Room's connection pool when using a SQLiteDriver that does not internally have a pool, such as the BundledSQLiteDriver. This improves performance on repeated execution of the same SQL statement. Fix an issue where the actual / expected error message on schema validation was missing information. Fix an issue with Room's Kotlin code generation missing @Transaction DAO functions with type variables. Improve Room's SupportSQLite Wrapper performance by avoiding thread hops maintaining the same blocking behaviour as the SupportSQLiteDatabase APIs. ### 2.8.3 — Version 2.8.3 - Date: 2025-10-22 - Version: 2.8.3 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.8.3 Fix a performance issue with the Room SQLite Wrapper that was causing excessive JNI calls and significant performance degradation when iterating over a Cursor. ### 2.8.2 — Version 2.8.2 - Date: 2025-10-08 - Version: 2.8.2 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.8.2 Fix a deadlock that could occur when re-opening an auto-closed database from a Flow emission. ### 2.8.1 — Version 2.8.1 - Date: 2025-09-24 - Version: 2.8.1 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.8.1 Fix a processor crash that would occur when processing a DAO function with a suspend lambda. Fix a race condition that would prevent Flows from receiving the latest updated. ### 2.8.0 — Version 2.8.0 - Date: 2025-09-10 - Version: 2.8.0 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.8.0 Added a new artifact androidx.room:room-sqlite-wrapper which contains APIs to get a SupportSQLiteDatabase wrapper from a RoomDatabase with a configured SQLiteDriver. To get the wrapper use the new extension function RoomDatabase.getSupportWrapper(). This is a compatibility artifact to maintain usages of SupportSQLiteDatabase, usually obtained from roomDatabase.openHelper.writableDatabase, even if the Room database is configured with a SQLiteDriver. This wrapper is useful for incremental migration of codebases who wish to adopt SQLiteDriver APIs but have extensive usages of the SupportSQLite APIs yet they want to take advantage of the BundledSQLiteDriver. Checkout the migration guide for more information. Added support for KMP targets Watch OS and Tv OS. Updated the library's Android minSDK from API 21 to API 23 ### 2.8.0-rc02 — Version 2.8.0-rc02 - Date: 2025-08-27 - Version: 2.8.0-rc02 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.8.0-rc02 Update the minSDK from API 21 to API 23 Update the minimum Android Gradle Plugin (AGP) version compatible with the Room Gradle Plugin from 8.1 to 8.4. Fix an issue where a destructive migration was being performed even if a migration path was available for a pre-packaged database. ### 2.8.0-rc01 — Version 2.8.0-rc01 - Date: 2025-08-13 - Version: 2.8.0-rc01 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.8.0-rc01 Removing obsolete @RequiresApi(21) annotations Fix a race condition where Room Flows would not emit the latest query result in an asynchronous multi-query/write situation. ### 2.8.0-beta01 — Version 2.8.0-beta01 - Date: 2025-08-01 - Version: 2.8.0-beta01 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.8.0-beta01 Table and view names are now escaped properly during destructive migrations. ### 2.8.0-alpha01 — Version 2.8.0-alpha01 - Date: 2025-07-16 - Version: 2.8.0-alpha01 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.8.0-alpha01 Added a new artifact androidx.room:room-sqlite-wrapper which contains APIs to get a SupportSQLiteDatabase wrapper of RoomDatabase with a configured SQLiteDriver. To get the wrapper use the new extension function RoomDatabase.getSupportWrapper(). This is a compatibility artifact to maintain usages of SupportSQLiteDatabase, usually obtained from RoomDatabase.openHelper.writableDatabase, even if the Room database is configured with a SQLiteDriver. This wrapper is useful for incremental migration of codebases who wish to adopt SQLiteDriver but have extensive usages of the SupportSQLite APIs yet they want to take advantage of the BundledSQLiteDriver. ### 2.7.2 — Version 2.7.2 - Date: 2025-06-18 - Version: 2.7.2 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.2 Fix an issue where annotation values would be incorrectly read when processing native sources with KSP, sometimes missing schema exports. (b/416549580) Fix a bug where leading comments in a SQL would cause statements to be executed as if they were non-read queries. (b/413061402) Fix an issue with Room's Gradle Plugin failing to configure due to the schema directory being empty. (b/417823384) No longer throw a SQLiteException when obtaining a connection takes too long, instead a log message will be sent by the library. Logging instead of throwing works around iOS suspending loopers causing Room to misinterpret the timeout that occurs in the Kotlin Coroutine acquiring the connection and thus preventing the exception from being thrown when an iOS app is backgrounded and later resumed in the middle of a database operation. (b/422448815) ### 2.7.1 — Version 2.7.1 - Date: 2025-04-23 - Version: 2.7.1 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.1 Fix IndexOutOfBoundsException bug during provided type converter validation. (b/409804755). Support RoomDatabase.runInTransaction() when a SQLiteDriver is configured with Room. (b/408364828). ### 2.7.0 — Version 2.7.0 - Date: 2025-04-09 - Version: 2.7.0 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0 Kotlin Multiplatform (KMP) Support: In this release, Room has been refactored to become a Kotlin Multiplatform (KMP) library. Current supported platforms are Android, iOS, JVM (Desktop), native Mac and native Linux. For more information on how to get started using Room KMP, please refer to the official Room KMP documentation. As part of the KMP support, Room can also be configured with an SQLiteDriver, for information on how to migrate an existing app to the driver APIs and to Room KMP, see the migration documentation. Kotlin Code Generation on KSP has been turned ON by default if processing is done via KSP. For KAPT or Java only projects, Room will still generate Java sources. Kotlin 2.0 and KSP2: Room now targets Kotlin language 2.0 and will require projects to also compile with Kotlin 2.0 and equivalent or higher language version. Support for KSP2 is also added and is recommended when using Room with Kotlin 2.0 or higher. ### 2.7.0-rc03 — Version 2.7.0-rc03 - Date: 2025-03-26 - Version: 2.7.0-rc03 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0-rc03 No longer throw InterruptedExceptionwhen a thread is interrupted during the execution of Room blocking APIs, including blocking DAO functions (b/400584611). Re-implement Room's connection pool in an attempt to alleviate SQLException: Error code: 5, message: Timed out attempting to acquire a reader connection. and similar issues (b/380088809). ### 2.7.0-rc02 — Version 2.7.0-rc02 - Date: 2025-03-12 - Version: 2.7.0-rc02 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0-rc02 Fix Auto Migrations incorrectly handling a new column on an FTS table. (b/348227770, Ic53f3) Fix a room-compiler crash due to a NullPointerException when processing non-JVM sources via KSP. (b/396607230, I693c9) Fix an issue where Room would not invalidate tables at the end of using the writer connection. (b/340606803, I73ef6) ### 2.7.0-rc01 — Version 2.7.0-rc01 - Date: 2025-02-26 - Version: 2.7.0-rc01 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0-rc01 Fix an issue where Room would not be setting the busy_timeout in the initial database connection that would lead to SQLException: Error code: 5, message: database is locked issues (I93208, b/380088809). Fix an issue in Room's compiler that would cause the KSP processor to crash when processing native source sets (such as iOS) on Kotlin 2.1.x and KSP1 (I883b8, b/396607230). ### 2.7.0-beta01 — Version 2.7.0-beta01 - Date: 2025-02-12 - Version: 2.7.0-beta01 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0-beta01 Fix an issue with RoomDatabase.inTransaction() opening a closed database when it shouldn't and should quickly return false if the database is closed (b/325432967). Fix a crash (IllegalArgumentException: not a valid name) in Room's compiler when processing DAO functions with Kotlin inline / value classes (b/388299754). Include Proguard rules in the JVM artifact of room-runtime so that the default constructor of the generated database implementation is not removed since it is used by Room's default initialization that uses reflection (b/392657750). ### 2.7.0-alpha13 — Version 2.7.0-alpha13 - Date: 2025-01-29 - Version: 2.7.0-alpha13 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0-alpha13 Room now targets Kotlin language 2.0 and will require projects to also compile with Kotlin 2.0 and equivalent or high language version. (I8efb0, b/315461431, b/384600605) Fix an issue in Room KMP database builder when a simple name instead of a path was used in Android and the database file resolved path would not be located in the app's data directory. (I83315, b/377830104) Fix an issue with the Room Gradle Plugin where configuring the schema inputs and output was causing an issue on Android projects: property 'inputDirectory' is final and cannot be changed any further. (1dbb4c, b/376071291) Add support for KSP2 in Room Gradle Plugin fixing an issue where the schema directory was not being properly set up by the plugin. (Iec3c4, b/379159770) Fix an issue with Room paging integration causing UI jumps when the initial key to refresh is too close to the end of the list. Thanks to Eva! (I2abbe, b/389729367) ### 2.7.0-alpha12 — Version 2.7.0-alpha12 - Date: 2024-12-11 - Version: 2.7.0-alpha12 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0-alpha12 Add the experimental API RoomDatabase.Builder.setInMemoryTrackingMode() to configure whether Room will use an in-memory table or not for invalidation tracking. (I2a9b2, b/185414040) Destructive migrations now drop views to ensure they are recreated, aligning behavior when allowDestructiveMigrationForAllTables is ON (KMP default) with the existing behavior when it's OFF. (0a3e83, b/381518941) ### 2.7.0-alpha11 — Version 2.7.0-alpha11 - Date: 2024-10-30 - Version: 2.7.0-alpha11 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0-alpha11 Revisit the newly added convertRows() method signature to be a suspend function that receives a RawRoomQuery for room-paging. (Ie57b5, b/369136627) Fixed the issue in room-paging where invalid code was being generated when using @Relation in conjunction with PagingSource. ### 2.7.0-alpha10 — Version 2.7.0-alpha10 - Date: 2024-10-16 - Version: 2.7.0-alpha10 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0-alpha10 Create internal ByteArrayWrapper class to support Relations with ByteBuffer in non-Android & non-JVM platforms. (I75543, b/367205685) Add SQLiteStatement.getColumnType() along with the various SQLITE_DATA_* result constants to enable retrieving the data type of a column. (I1985c, b/369636251) ### 2.7.0-alpha09 — Version 2.7.0-alpha09 - Date: 2024-10-02 - Version: 2.7.0-alpha09 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0-alpha09 Fix an issue with the KMP implementation of room-paging that would cause an Error code: 8, message: attempt to write a readonly database due to starting a write transaction on a read connection. (b/368380988) ### 2.7.0-alpha08 — Version 2.7.0-alpha08 - Date: 2024-09-18 - Version: 2.7.0-alpha08 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0-alpha08 The room-paging artifacts have been migrated to be KMP compatible. (Ib8756, b/339934824) The API invalidationTrackerFlow() has been commonized as a first-party API as InvalidationTracker.createFlow() and is now available for non-Android source sets in KMP projects. (I1fbfa, (I8fb29), b/329291639, b/329315924) All warnings and error messages in Room that use the word Cursor have been removed or replaced, as Cursor is no longer an accurate general term to use in the KMP version of Room. (Id8cd9, b/334087492) Fixed an issue where Room KMP would try to emit code using UUID for non-JVM platforms. (b/362994709) Fixed an issue with the Room Gradle Plugin that would cause an error such as 'Cannot change attributes of configuration … after it has been locked for mutation' when being used in a KMP project with Compose Multiplatform. (b/343408758) ### 2.7.0-alpha07 — Version 2.7.0-alpha07 - Date: 2024-08-21 - Version: 2.7.0-alpha07 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0-alpha07 The Room Gradle Plugin will now automatically add the exported schemas into the Android Instrumentation Test resource sources so they can be used by the MigrationTestHelper. Fixed an issue with the generated 'actual' of the RoomDatabaseConstructor missing the 'actual' modifier in the initialize function if such function is also overridden in the 'expect' declaration. (359631627) Fixed an issue with the generated 'actual' of the RoomDatabaseConstructor not matching the visibility of the 'expect' declaration. (358138953) ### 2.7.0-alpha06 — Version 2.7.0-alpha06 - Date: 2024-08-07 - Version: 2.7.0-alpha06 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0-alpha06 Change the instantiation setup for a RoomDatabase in a KMP project. Due to Kotlin 2.0 compilation model, the strategy of referencing a to-be-generated function, named instantiateImpl() is longer viable. Two new APIs, @ConstructedBy and RoomDatabaseConstructor are introduced that replace the instantiateImpl() strategy. The new strategy is as follow: Define an expect object that implements RoomDatabaseConstructor expect object MyDatabaseCtor : RoomDatabaseConstructor Link the object with the @Database declaration using @ConstructedBy @Database (...) @ConstructedBy (MyDatabaseCtor : : class) // NEW abstract class MyDatabase : RoomDatabase Create a new database instance but without passing a factory argument fun createNewDatabase(path: String) = Room.databaseBuilder(name = path) .setDriver(BundledSQLiteDriver()) .setQueryCoroutineContext(Dispatchers.IO) .build() Fixes b/316978491, b/338446862, and b/342905180 ### 2.7.0-alpha05 — Version 2.7.0-alpha05 - Date: 2024-07-10 - Version: 2.7.0-alpha05 - Original notes: https://developer.android.com/jetpack/androidx/releases/room - Permalink: https://whatsnew.fyi/product/room/releases/2.7.0-alpha05 Renamed SQLiteKt to SQLite and BundledSQLiteKt to BundledSQLite. ( I8b501) Fixed a bug where a RoomDatabase would deadlock or error out with a connection timeout when using the AndroidSQLiteDriver.