Skip to content
This repository was archived by the owner on Jun 9, 2025. It is now read-only.
This repository was archived by the owner on Jun 9, 2025. It is now read-only.

Error: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0 #202

@rfc2822

Description

@rfc2822

Guess it's this call:

if (!cursor.isNull(0)) // Events.STATUS != null

Discussed in bitfireAT/davx5-ose#1447

Originally posted by renyuneyun May 7, 2025
Not sure whether it's DAVx5 causing this error, the server (Nextcloud) causing it or my Android OS causing it, so I'm posting it as a discussion first.

I get this error for two of my calendar collections, from time to time. But their contents are generally updated after synchronization.

NOTIFICATION TIME
Local time: 2025-05-07T14:50:25+01:00
UTC: 2025-05-07T13:50:25Z

SYNCHRONIZATION INFO
Account: Account {name=MY_EMAIL_ADDRESS, type=bitfire.at.davdroid}
Authority: com.android.calendar
android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
	at android.database.AbstractCursor.checkPosition(AbstractCursor.java:535)
	at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:139)
	at android.database.AbstractWindowedCursor.isNull(AbstractWindowedCursor.java:95)
	at android.database.CursorWrapper.isNull(CursorWrapper.java:187)
	at at.bitfire.ical4android.AndroidEvent.update(AndroidEvent.kt:52)
	at at.bitfire.davdroid.sync.CalendarSyncManager.processVEvent$lambda$14(CalendarSyncManager.kt:26)
	at at.bitfire.davdroid.sync.CalendarSyncManager.$r8$lambda$-yysUu1mnb5YKsSp5laPGSXWQjM(CalendarSyncManager.kt:1)
	at at.bitfire.davdroid.sync.CalendarSyncManager$$ExternalSyntheticLambda10.invoke(R8$$SyntheticClass:13)
	at at.bitfire.davdroid.sync.SyncException$Companion.wrapWithLocalResource(SyncException.kt:6)
	at at.bitfire.davdroid.sync.CalendarSyncManager.processVEvent(CalendarSyncManager.kt:140)
	at at.bitfire.davdroid.sync.CalendarSyncManager.downloadRemote$lambda$11$lambda$10$lambda$9(CalendarSyncManager.kt:111)
	at at.bitfire.davdroid.sync.CalendarSyncManager.$r8$lambda$xBRNK6FZsxb0c35R_GMkb1qDT8A(CalendarSyncManager.kt:1)
	at at.bitfire.davdroid.sync.CalendarSyncManager$$ExternalSyntheticLambda4.invoke(R8$$SyntheticClass:5)
	at at.bitfire.davdroid.sync.SyncException$Companion.wrapWithRemoteResource(SyncException.kt:6)
	at at.bitfire.davdroid.sync.CalendarSyncManager.downloadRemote$lambda$11$lambda$10(CalendarSyncManager.kt:22)
	at at.bitfire.davdroid.sync.CalendarSyncManager.$r8$lambda$is9u8vJ7VzS62N-UVw4ofat62j4(CalendarSyncManager.kt:1)
	at at.bitfire.davdroid.sync.CalendarSyncManager$$ExternalSyntheticLambda0.onResponse(R8$$SyntheticClass:3)
	at at.bitfire.dav4jvm.Response$Companion.parse(Response.kt:320)
	at at.bitfire.dav4jvm.DavResource.processMultiStatus$parseMultiStatus(DavResource.kt:51)
	at at.bitfire.dav4jvm.DavResource.processMultiStatus(DavResource.kt:18)
	at at.bitfire.dav4jvm.DavResource.processMultiStatus(DavResource.kt:9)
	at at.bitfire.dav4jvm.DavCalendar.multiget(DavCalendar.kt:69)
	at at.bitfire.dav4jvm.DavCalendar.multiget$default(DavCalendar.kt:12)
	at at.bitfire.davdroid.sync.CalendarSyncManager.downloadRemote$lambda$11(CalendarSyncManager.kt:18)
	at at.bitfire.davdroid.sync.CalendarSyncManager.$r8$lambda$3MqIM-UjL7npA99FHS230pOYtbQ(CalendarSyncManager.kt:1)
	at at.bitfire.davdroid.sync.CalendarSyncManager$$ExternalSyntheticLambda1.invoke(R8$$SyntheticClass:5)
	at at.bitfire.davdroid.sync.SyncException$Companion.wrapWithRemoteResource(SyncException.kt:6)
	at at.bitfire.davdroid.sync.CalendarSyncManager.downloadRemote(CalendarSyncManager.kt:54)
	at at.bitfire.davdroid.sync.SyncManager$syncRemote$1$download$1.invokeSuspend(SyncManager.kt:14)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:9)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:115)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:77)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:99)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:3)
	at at.bitfire.davdroid.sync.SyncManager.syncRemote(SyncManager.kt:12)
	at at.bitfire.davdroid.sync.SyncManager.performSync(SyncManager.kt:424)
	at at.bitfire.davdroid.sync.CalendarSyncer.syncCollection(CalendarSyncer.kt:10)
	at at.bitfire.davdroid.sync.CalendarSyncer.syncCollection(CalendarSyncer.kt:1)
	at at.bitfire.davdroid.sync.Syncer.syncCollectionContents$davx5_ose_4_4_9_oseRelease(Syncer.kt:44)
	at at.bitfire.davdroid.sync.Syncer.sync$davx5_ose_4_4_9_oseRelease(Syncer.kt:42)
	at at.bitfire.davdroid.sync.Syncer.invoke(Syncer.kt:144)
	at at.bitfire.davdroid.sync.worker.BaseSyncWorker$doSyncWork$2.invokeSuspend$lambda$0(BaseSyncWorker.kt:1)
	at at.bitfire.davdroid.sync.worker.BaseSyncWorker$doSyncWork$2.$r8$lambda$MnrEU1_WtQZTTPjmMRztfG3Y7fo(BaseSyncWorker.kt:1)
	at at.bitfire.davdroid.sync.worker.BaseSyncWorker$doSyncWork$2$$ExternalSyntheticLambda0.invoke(R8$$SyntheticClass:3)
	at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invokeSuspend(Interruptible.kt:58)
	at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(Interruptible.kt:13)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:17)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:45)
	at kotlinx.coroutines.InterruptibleKt.runInterruptible$default(Interruptible.kt:9)
	at at.bitfire.davdroid.sync.worker.BaseSyncWorker$doSyncWork$2.invokeSuspend(BaseSyncWorker.kt:332)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:9)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:115)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
	at java.lang.Thread.run(Thread.java:1012)

LOCAL RESOURCE
AndroidEvent(calendar=at.bitfire.davdroid.resource.LocalCalendar@ac202e1, id=285, event=Event(uid=SOME_UID, sequence=1, userAgents=[], recurrenceId=null, summary=SUMMARY_REMOVED, location=null, url=null, description=null, color=null, dtStart=DTSTART;TZID=Europe/London:20250512T110000
, dtEnd=DTEND;TZID=Europe/London:20250512T120000
, duration=null, rRules=[], exRules=[], rDates=[], exDates=[], exceptions=[], classification=null, status=null, opaque=true, organizer=null, attendees=[], alarms=[], lastModified=LAST-MODIFIED:20250430T091500Z
, categories=[], unknownProperties=[CREATED:20250428T175101Z
, X-MOZ-GENERATION:2
]))

REMOTE RESOURCE
https://MY_NEXT_CLOUD_SERVER/remote.php/dav/calendars/MY_USERNAME/CALENDAR_NAME/SOME_UID.ics
SYSTEM INFORMATION

Android version: 15 (PKR110_15.0.0.705(CN01))
Device: OnePlus PKR110 (OP60EBL1)

Locale(s): [zh_CN]
Time zone: Europe/London
Internal memory (/data): 120 GB free of 237 GB

App standby bucket: exempted (very good)
App exempted from power saving: yes (good)
System in power-save mode: no
System-wide synchronization: automatically



CONNECTIVITY

 ☒ wlan0
   - [ Transports: WIFI Capabilities: NOT_METERED INTERNET NOT_RESTRICTED TRUSTED NOT_VPN VALIDATED NOT_ROAMING FOREGROUND NOT_CONGESTED NOT_SUSPENDED NOT_VCN_MANAGED NOT_BANDWIDTH_CONSTRAINED LinkUpBandwidth>=73764Kbps LinkDnBandwidth>=67686Kbps TransportInfo: <SSID: <unknown ssid>, BSSID: 02:00:00:00:00:00, MAC: 02:00:00:00:00:00, IP: /192.168.4.200, Security type: 2, Supplicant state: COMPLETED, Wi-Fi standard: 11ac, RSSI: -40, Link speed: 360Mbps, Tx Link speed: 360Mbps, Max Supported Tx Link speed: 400Mbps, Rx Link speed: 400Mbps, Max Supported Rx Link speed: 400Mbps, Frequency: 5785MHz, Net ID: -1, Metered hint: false, score: 60, isUsable: true, CarrierMerged: false, SubscriptionId: -1, IsPrimary: -1, Trusted: true, Restricted: false, Ephemeral: false, OEM paid: false, OEM private: false, OSU AP: false, FQDN: <none>, Provider friendly name: <none>, Requesting package name: <none><none>MLO Information: , Is TID-To-Link negotiation supported by the AP: false, AP MLD Address: <none>, AP MLO Link Id: <none>, AP MLO Affiliated links: <none>, Vendor Data: <none>> SignalStrength: -40 UnderlyingNetworks: Null]
   - DNS: 180.76.76.76, 223.5.5.5
 ☐ rmnet_data7
   - [ Transports: CELLULAR Capabilities: IMS NOT_METERED TRUSTED NOT_VPN VALIDATED NOT_ROAMING FOREGROUND NOT_CONGESTED NOT_SUSPENDED NOT_VCN_MANAGED MMTEL NOT_BANDWIDTH_CONSTRAINED LinkUpBandwidth>=15000Kbps LinkDnBandwidth>=30000Kbps Specifier: <TelephonyNetworkSpecifier [mSubId = 2]> SubscriptionIds: {2} UnderlyingNetworks: Null]
   - DNS: 
 ☐ rmnet_data8
   - [ Transports: CELLULAR Capabilities: IMS NOT_METERED TRUSTED NOT_VPN VALIDATED FOREGROUND NOT_CONGESTED NOT_SUSPENDED NOT_VCN_MANAGED MMTEL NOT_BANDWIDTH_CONSTRAINED LinkUpBandwidth>=18000Kbps LinkDnBandwidth>=47000Kbps Specifier: <TelephonyNetworkSpecifier [mSubId = 1]> SubscriptionIds: {1} UnderlyingNetworks: Null]
   - DNS: 

Data saver: disabled



CONFIGURATION

Notifications:
 - sync isBlocked=false
  * syncProblems: importance=3
  * syncIoErrors: importance=1
  * syncWarnings: importance=2
 - status: importance=2
 - general: importance=3
 - debug: importance=4

Permissions:
 - ACCESS_NETWORK_STATE: granted
 - ACCESS_WIFI_STATE: granted
 - INTERNET: granted
 - POST_NOTIFICATIONS: granted
 - READ_SYNC_SETTINGS: granted
 - READ_SYNC_STATS: granted
 - WRITE_SYNC_SETTINGS: granted
 - RECEIVE_BOOT_COMPLETED: granted
 - REQUEST_IGNORE_BATTERY_OPTIMIZATIONS: granted
 - READ_CONTACTS: granted
 - WRITE_CONTACTS: granted
 - READ_CALENDAR: granted
 - WRITE_CALENDAR: granted
 - ACCESS_COARSE_LOCATION: granted
 - ACCESS_FINE_LOCATION: granted
 - ACCESS_BACKGROUND_LOCATION: granted
 - WAKE_LOCK: granted
 - FOREGROUND_SERVICE: granted
 - org.dmfs.permission.READ_TASKS: denied
 - org.dmfs.permission.WRITE_TASKS: denied
 - org.tasks.permission.READ_TASKS: denied
 - org.tasks.permission.WRITE_TASKS: denied
 - at.techbee.jtx.permission.READ: granted
 - at.techbee.jtx.permission.WRITE: granted
 - at.bitfire.davdroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION: granted

(I chose the most relevant parts, with some sensitive information removed. Can provide further information if required.)

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions