Skip to content

[SYNC] Android attachment uploading fails #1136

Description

@alkanex-xyz

💻 Platform

  • Desktop (Linux)
  • Desktop (macOS)
  • Desktop (Windows)
  • Mobile (Android)
  • Mobile (iOS)
  • Cloud / WebDAV server

ℹ️ Environment

  • App Version: (e.g. v1.2.6)
  • Install Channel(s): Play Store
  • Sync Backend: Cloud server (Docker latest Tag, Just pulled the Update)
  • OS Version(s): Cloud-Server: Debian 13.6; Android 17
  • Device clocks auto-sync enabled: unknown
Install channel examples (Click to expand)
  • Desktop Linux: Flathub, APT, AUR, distro package, release file (.deb, .rpm, AppImage), source/dev build
  • Desktop macOS: App Store, Homebrew, release file (.dmg), source/dev build
  • Desktop Windows: Microsoft Store, winget, release file (.exe / .msi), source/dev build
  • Android: Play Store, F-Droid, release file / sideloaded APK, source/dev build
  • iOS: App Store, TestFlight, source/dev build

🧩 What happened?

I've got at first Sync failures for the automatic sync (Won't report for now, as there was the update Today). But the Failures won't occur when I Trigger the Sync manually.

Later the sync shows the message that the Attachement upload has failed. No error message in the Cloud-Server.

I can't find the ID in the json on the Server. Neither of the Attachment nor the Task (the Task-ID isn't in the debug log?)

I didn't add any attachment on the mobile device and cant find any attachment in the inbox or Focus Tab

🔄 Reproduction Steps

  1. trying to trigger a sync

✅ Expected result

sync without error

📋 Diagnostic data (very helpful)

{"ts":"2026-09-01T17:19:24.002Z","level":"info","scope":"startup","message":"App started","context":{"version":"1.2.6","platform":"android","osMajor":"android-17","locale":"de-DE","channel":"play-store","syncBackend":"cloud","schemaVersion":"11","deviceClass":"phone","buildType":"standard","loggingReason":"startup-force"}}
{"ts":"2026-09-01T17:26:49.238Z","level":"info","scope":"diagnostics","message":"Debug logging enabled"}
{"ts":"2026-09-01T17:26:57.617Z","level":"info","scope":"sync","message":"Sync start","context":{"backend":"cloud"}}
{"ts":"2026-09-01T17:26:57.617Z","level":"info","scope":"sync","message":"Sync diagnostic start","context":{"backend":"cloud"}}
{"ts":"2026-09-01T17:26:57.617Z","level":"info","scope":"sync","message":"Sync step","context":{"step":"flush","sinceLastStepMs":"0"}}
{"ts":"2026-09-01T17:26:57.619Z","level":"info","scope":"sync","message":"Sync diagnostic phase","context":{"elapsedMs":"2","backend":"cloud","phase":"flush","step":"flush"}}
{"ts":"2026-09-01T17:26:57.619Z","level":"info","scope":"sync","message":"Sync step","context":{"step":"setup","sinceLastStepMs":"2"}}
{"ts":"2026-09-01T17:26:57.624Z","level":"info","scope":"sync","message":"Sync step","context":{"step":"read-local","sinceLastStepMs":"5"}}
{"ts":"2026-09-01T17:26:57.672Z","level":"info","scope":"sync","message":"Sync local reconcile","context":{"reconcile":"aligned-skip","durationMs":"3","tasks":"57"}}
{"ts":"2026-09-01T17:26:57.717Z","level":"info","scope":"sync","message":"Sync trace read local payload","context":{"backend":"cloud","hasData":"true","tasks":"57","projects":"2","sections":"0","areas":"4","deletedAreas":"0","areaIdsSample":"154161e5-989e-4e12-9e3d-b0ea141381d9,3df50493-0455-4689-a3de-5b9f71924453,923b9557-ca1b-4505-bef5-9d482aa9e1a8,abb58489-4010-4058-b5fa-61c2427dc5ca","areaIdsTruncated":"false","pendingRemoteWrite":"false","fingerprint":"stable-v1:114750:4e536dc5cf361398","tasksSig":"stable-v1:111966:89f58e9fcfd8cf20","projectsSig":"stable-v1:911:3245b457572dc3a4","sectionsSig":"stable-v1:2:741638a52aaacfe2","areasSig":"stable-v1:896:3dbe430c108689f0","peopleSig":"stable-v1:2:741638a52aaacfe2","settingsSig":"stable-v1:908:de51a46a62ef1b9b"}}
{"ts":"2026-09-01T17:26:57.718Z","level":"info","scope":"sync","message":"Sync step","context":{"step":"read-remote","sinceLastStepMs":"94"}}
{"ts":"2026-09-01T17:26:58.080Z","level":"info","scope":"sync","message":"Sync trace read remote payload","context":{"backend":"cloud","hasData":"true","tasks":"49","projects":"2","sections":"0","areas":"4","deletedAreas":"0","areaIdsSample":"154161e5-989e-4e12-9e3d-b0ea141381d9,3df50493-0455-4689-a3de-5b9f71924453,923b9557-ca1b-4505-bef5-9d482aa9e1a8,abb58489-4010-4058-b5fa-61c2427dc5ca","areaIdsTruncated":"false","pendingRemoteWrite":"false","fingerprint":"stable-v1:104894:dfc431a8ce839fba","tasksSig":"stable-v1:102110:344f61700311272d","projectsSig":"stable-v1:911:5833f10bc74f243f","sectionsSig":"stable-v1:2:741638a52aaacfe2","areasSig":"stable-v1:896:3dbe430c108689f0","peopleSig":"stable-v1:2:741638a52aaacfe2","settingsSig":"stable-v1:908:de51a46a62ef1b9b"}}
{"ts":"2026-09-01T17:26:58.080Z","level":"info","scope":"sync","message":"Sync step","context":{"step":"merge","sinceLastStepMs":"362"}}
{"ts":"2026-09-01T17:26:58.107Z","level":"info","scope":"sync","message":"Sync step","context":{"step":"attachments_finalize","sinceLastStepMs":"27"}}
{"ts":"2026-09-01T17:26:58.204Z","level":"warn","scope":"attachment","message":"Failed to upload attachment 4d0fe4cc-d55f-4ef9-b593-25972314dee3","context":{"error":"Call to function 'ExponentFileSystem.uploadTaskStartAsync' has been rejected.\n→ Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Enum.ordinal()' on a null object reference"}}
{"ts":"2026-09-01T17:26:58.207Z","level":"warn","scope":"sync","message":"Sync failed","context":{"error":"Candidate attachment proof failed for 4d0fe4cc-d55f-4ef9-b593-25972314dee3"}}
{"ts":"2026-09-01T17:27:06.884Z","level":"info","scope":"performance","message":"performance_event","context":{"operation":"task_list_commit","elapsedMs":"1372","route":"inbox","taskCount":"57","projectCount":"0","areaCount":"4","sectionCount":"0","listItemCount":"25","filterCount":"0","rowRenderCount":"0","platform":"android"}}
{"ts":"2026-09-01T17:27:10.029Z","level":"info","scope":"sync","message":"Sync start","context":{"backend":"cloud"}}
{"ts":"2026-09-01T17:27:10.030Z","level":"info","scope":"sync","message":"Sync diagnostic start","context":{"backend":"cloud"}}
{"ts":"2026-09-01T17:27:10.030Z","level":"info","scope":"sync","message":"Sync step","context":{"step":"flush","sinceLastStepMs":"0"}}
{"ts":"2026-09-01T17:27:10.031Z","level":"info","scope":"sync","message":"Sync diagnostic phase","context":{"elapsedMs":"2","backend":"cloud","phase":"flush","step":"flush"}}
{"ts":"2026-09-01T17:27:10.031Z","level":"info","scope":"sync","message":"Sync step","context":{"step":"setup","sinceLastStepMs":"1"}}
{"ts":"2026-09-01T17:27:10.073Z","level":"info","scope":"sync","message":"Sync local reconcile","context":{"reconcile":"aligned-skip","durationMs":"4","tasks":"57"}}
{"ts":"2026-09-01T17:27:10.077Z","level":"info","scope":"sync","message":"Sync step","context":{"step":"attachments_prepare","sinceLastStepMs":"46"}}
{"ts":"2026-09-01T17:27:10.121Z","level":"info","scope":"sync","message":"Attachment pre-sync complete","context":{"backend":"cloud","mutated":"false"}}
{"ts":"2026-09-01T17:27:10.121Z","level":"info","scope":"sync","message":"Sync diagnostic attachment prepare complete","context":{"elapsedMs":"44","backend":"cloud","mutated":"false","hasData":"true","tasks":"57","liveTasks":"36","trashedTasks":"21","tombstoneTasks":"0","tasksCreatedLast7d":"57","projects":"2","areas":"4","contexts":"1","tags":"1","checklistItems":"45","attachments":"3"}}
{"ts":"2026-09-01T17:27:10.121Z","level":"info","scope":"sync","message":"Sync step","context":{"step":"fast-check","sinceLastStepMs":"44"}}
{"ts":"2026-09-01T17:27:10.123Z","level":"info","scope":"sync","message":"Sync step","context":{"step":"read-check","sinceLastStepMs":"2"}}
{"ts":"2026-09-01T17:27:10.124Z","level":"info","scope":"sync","message":"Sync step","context":{"step":"read-local","sinceLastStepMs":"1"}}
{"ts":"2026-09-01T17:27:10.193Z","level":"info","scope":"sync","message":"Sync trace read local payload","context":{"backend":"cloud","hasData":"true","tasks":"57","projects":"2","sections":"0","areas":"4","deletedAreas":"0","areaIdsSample":"154161e5-989e-4e12-9e3d-b0ea141381d9,3df50493-0455-4689-a3de-5b9f71924453,923b9557-ca1b-4505-bef5-9d482aa9e1a8,abb58489-4010-4058-b5fa-61c2427dc5ca","areaIdsTruncated":"false","pendingRemoteWrite":"true","fingerprint":"stable-v1:114750:4e536dc5cf361398","tasksSig":"stable-v1:111966:89f58e9fcfd8cf20","projectsSig":"stable-v1:911:3245b457572dc3a4","sectionsSig":"stable-v1:2:741638a52aaacfe2","areasSig":"stable-v1:896:3dbe430c108689f0","peopleSig":"stable-v1:2:741638a52aaacfe2","settingsSig":"stable-v1:908:de51a46a62ef1b9b"}}
{"ts":"2026-09-01T17:27:10.197Z","level":"info","scope":"sync","message":"Sync skipped while pending remote write backoff is active","context":{"backend":"cloud","retryInMs":"31738"}}
{"ts":"2026-09-01T17:27:10.197Z","level":"info","scope":"sync","message":"Sync diagnostic skipped","context":{"elapsedMs":"74","backend":"cloud","step":"read-local","success":"true","skipped":"pendingRemoteWriteBackoff","retryInMs":"31738","hasData":"true","tasks":"57","liveTasks":"36","trashedTasks":"21","tombstoneTasks":"0","tasksCreatedLast7d":"57","projects":"2","areas":"4","contexts":"1","tags":"1","checklistItems":"45","attachments":"3"}}

For log collection, see: https://docs.mindwtr.app/data-sync/diagnostics-logs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:syncSync engine and conflict resolutionbugSomething isn't workingplatform:mobileMobile app scope

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions