Skip to content

Special case and remove from ACRA: "Syncing failed, because your email address needs to be (re)confirmed." #17392

@david-allison

Description

@david-allison

https://ankidroid.org/acra/app/1/bug/252627/report/27d23a2f-90f0-4c10-a5fa-2e3ccf1ac093

net.ankiweb.rsdroid.exceptions.BackendSyncException: Syncing failed, because your email address needs to be (re)confirmed. Please visit ankiweb.net, and log in as **email** to proceed.
	at net.ankiweb.rsdroid.exceptions.BackendSyncException.<init>(BackendSyncException.kt:21)
	at net.ankiweb.rsdroid.BackendException$Companion.fromError(BackendException.kt:107)
	at net.ankiweb.rsdroid.BackendKt.unpackResult(Backend.kt:281)
	at net.ankiweb.rsdroid.BackendKt.access$unpackResult(Backend.kt:1)
	at net.ankiweb.rsdroid.Backend.runMethodRaw$lambda$1(Backend.kt:118)
	at net.ankiweb.rsdroid.Backend.withBackend(Backend.kt:131)
	at net.ankiweb.rsdroid.Backend.runMethodRaw(Backend.kt:117)
	at anki.backend.GeneratedBackend.syncStatusRaw(GeneratedBackend.kt:61)
	at anki.backend.GeneratedBackend.syncStatus(GeneratedBackend.kt:66)
	at com.ichi2.anki.DeckPicker$automaticSync$areThereChangesToSync$status$1.invokeSuspend(DeckPicker.kt:1208)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.java:111)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:811)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:715)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:702)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [p0{Cancelling}@a3c347a, Dispatchers.Main.immediate]

Task List

  • AnkiDroid 2.19: Detect & Block the email reconfirmation BackendSyncException from being sent to ACRA
    • I suspect the best method for this is to have an exception subclass
    • I suspect we need to match on the exception message
  • Anki 24.11: Strongly type the exception so we can fix it properly
    • AnkiDroid 2.20: Improve our exception mapping so we're not matching on the exception message
  • ACRA:
    • Clear instances of the BackendSyncException
    • Block further occurrences from hitting the DB

Related:

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions