diff --git a/ElementX/Sources/Screens/RoomDetailsScreen/RoomDetailsScreenViewModel.swift b/ElementX/Sources/Screens/RoomDetailsScreen/RoomDetailsScreenViewModel.swift index fe8d27be4..242a9c63b 100644 --- a/ElementX/Sources/Screens/RoomDetailsScreen/RoomDetailsScreenViewModel.swift +++ b/ElementX/Sources/Screens/RoomDetailsScreen/RoomDetailsScreenViewModel.swift @@ -254,7 +254,10 @@ class RoomDetailsScreenViewModel: RoomDetailsScreenViewModelType, RoomDetailsScr state.isProcessingIgnoreRequest = false switch result { case .success: - state.dmRecipient?.isIgnored = true + // Mutating the optional in place when built for Release crashes 🤷‍♂️ + var dmRecipient = state.dmRecipient + dmRecipient?.isIgnored = true + state.dmRecipient = dmRecipient case .failure, .none: state.bindings.alertInfo = .init(id: .unknown) } @@ -266,7 +269,10 @@ class RoomDetailsScreenViewModel: RoomDetailsScreenViewModelType, RoomDetailsScr state.isProcessingIgnoreRequest = false switch result { case .success: - state.dmRecipient?.isIgnored = false + // Mutating the optional in place when built for Release crashes 🤷‍♂️ + var dmRecipient = state.dmRecipient + dmRecipient?.isIgnored = false + state.dmRecipient = dmRecipient case .failure, .none: state.bindings.alertInfo = .init(id: .unknown) } diff --git a/changelog.d/2140.bugfix b/changelog.d/2140.bugfix new file mode 100644 index 000000000..77749291f --- /dev/null +++ b/changelog.d/2140.bugfix @@ -0,0 +1 @@ +Fix a crash when blocking/unblocking a user from the DM details screen. \ No newline at end of file