From 297a7525c647ba90fad1aef9ff1df3768ea6023c Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Fri, 2 Jan 2026 17:22:18 -0600 Subject: [PATCH] Delete microsoft task when update returns HTTP 404 --- .../sync/microsoft/MicrosoftSynchronizer.kt | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/tasks/sync/microsoft/MicrosoftSynchronizer.kt b/app/src/main/java/org/tasks/sync/microsoft/MicrosoftSynchronizer.kt index 7c2026921..925b29402 100644 --- a/app/src/main/java/org/tasks/sync/microsoft/MicrosoftSynchronizer.kt +++ b/app/src/main/java/org/tasks/sync/microsoft/MicrosoftSynchronizer.kt @@ -227,7 +227,13 @@ class MicrosoftSynchronizer @Inject constructor( microsoft.createTask(list.uuid!!, remoteTask) } else { Timber.d("Updating existing task: $task") - microsoft.updateTask(list.uuid!!, caldavTask.remoteId!!, remoteTask) + try { + microsoft.updateTask(list.uuid!!, caldavTask.remoteId!!, remoteTask) + } catch (e: NotFoundException) { + Timber.w(e, "Task deleted remotely, deleting locally: $task") + taskDeleter.delete(task.id) + return + } } caldavTask.remoteId = result.id caldavTask.obj = "${result.id}.json" @@ -241,7 +247,13 @@ class MicrosoftSynchronizer @Inject constructor( microsoft.createChecklistItem(list.uuid!!, caldavParent, remoteTask) } else { Timber.d("Updating existing checklist item: $task") - microsoft.updateChecklistItem(list.uuid!!, caldavParent, remoteTask) + try { + microsoft.updateChecklistItem(list.uuid!!, caldavParent, remoteTask) + } catch (e: NotFoundException) { + Timber.w(e, "Checklist item deleted remotely, deleting locally: $task") + taskDeleter.delete(task.id) + return + } } caldavTask.remoteId = result.id caldavTask.remoteParent = caldavParent