Introduction
With the v2 release of the Dyte Core SDK, we're introducing a major upgrade focused on making the development experience simpler, more consistent, and intuitive. This upgrade introduces breaking changes across four key areas:
1. Migration to V2 REST API Terminology
meeting.meta.roomName->meeting.meta.meetingIdDyteMeetingParticipant.clientSpecificId->DyteMeetingParticipant.customParticipantId- Removed 
DyteMeetingInfo(V1) 
2. Removal of Deprecated APIs
We have removed deprecated methods and properties in favour of improved, uniform, and clearer versions.
- Removed 
DyteParticipants.screenshares(useDyteParticipants.screenShares). The deprecated typeDyteScreenShareMeetingParticipanthas also been removed - Chat Methods: Removed deprecated file and image send methods. The new lambda-based methods take more reliable 
Uris & return proper errors- File message methods:
- Removed:
sendFileMessage(filePath: String)sendFileMessage(filePath: String, fileName: String)sendFileMessage(fileUri: Uri)
 - Use instead:
sendFileMessage(fileUri: Uri, onResult: (ChatFileError?) -> Unit)
 - Removed:
sendFileMessage(filePath: String, peerIds: List<String>)sendFileMessage(fileUri: Uri, peerIds: List<String>)
 - Use instead:
sendFileMessage(fileUri: Uri, peerIds: List<String>, onResult: (ChatFileError?) -> Unit)
 
 - Removed:
 - Image message methods:
- Removed:
sendImageMessage(filePath: String, fileName: String)sendImageMessage(imageUri: Uri)sendImageMessage(imagePath: String)
 - Use instead:
sendImageMessage(imageUri: Uri, onResult: (ChatFileError?) -> Unit)
 - Removed:
sendImageMessage(imagePath: String, peerIds: List<String>)sendImageMessage(imageUri: Uri, peerIds: List<String>)sendImageMessage(filePath: String, fileName: String, peerIds: List<String>)
 - Use instead:
sendImageMessage(imageUri: Uri, peerIds: List<String>, onResult: (ChatFileError?) -> Unit)
 
 - Removed:
 
 - File message methods:
 - Removed deprecated listener callbacks:
DyteSelfEventsListener.onStageStatusUpdated. UseDyteStageEventListener.onStageStatusUpdated()DyteStageEventListener.onPresentRequestAccepted(participant: DyteJoinedMeetingParticipant)DyteMeetingRoomEventsListener.onActiveTabUpdate(id: String, tabType: ActiveTabType).
UseDyteMeetingRoomEventsListener.onActiveTabUpdate(meeting: DyteMobileClient, activeTab: ActiveTab)
 
3. Revamped Error Handling
- Errors are categorised by modules, such as 
ChatError,SelfError, andMeetingError - All public APIs provide proper errors and additional error data where applicable for better debugging
 - Utilises Kotlin sealed classes for better type safety
 
4. API Structural Changes
We made a few direct breaking changes in our APIs to simplify the types, make methods more intuitive and ensure uniformity across platforms. 
For example, DyteMeetingParticipant has been restructured to align with real-world entities.
Learn more about the direct breaking changes and migration instructions on the next page.