-
-
Notifications
You must be signed in to change notification settings - Fork 29
Closed
Labels
bugSomething isn't workingSomething isn't workingdependency bugBug linked to a dependencyBug linked to a dependency
Description
Update
Future bug divers, here is the comment explaining the issue: #195 (comment)
- Last known working version: 4.4.3
- Current version: 5.0.2
Problem
DavX on my android devices are failing to sync calendars and address books, while Thunderbird for the same user and resources, is working fine.
I use imap authentication, and I've double checked that my auth details are correct in DavX.
Call to undefined function Sabre\DAV\Auth\Backend\imap_open()
Here is the debug info from davx (slightly redacted)
--- BEGIN DEBUG INFO ---
NOTIFICATION TIME
Local time: 2025-05-06T15:42:48+02:00
UTC: 2025-05-06T13:42:48Z
SYNCHRONIZATION INFO
Account: Account {name=user@mydomain.com, type=bitfire.at.davdroid}
Authority: com.android.calendar
EXCEPTION
at.bitfire.dav4jvm.exception.HttpException: HTTP 500 Internal Server Error
at at.bitfire.dav4jvm.DavResource.checkStatus(DavResource.kt:3)
at at.bitfire.dav4jvm.DavResource.checkStatus(DavResource.kt:1)
at at.bitfire.dav4jvm.DavResource.processMultiStatus(DavResource.kt:2)
at at.bitfire.dav4jvm.DavResource.propfind(DavResource.kt:77)
at at.bitfire.davdroid.sync.CalendarSyncManager.queryCapabilities$lambda$3(CalendarSyncManager.kt:30)
at at.bitfire.davdroid.sync.CalendarSyncManager.$r8$lambda$WgZpb3kEDaQ7fxdsisoeL5kAHSU(CalendarSyncManager.kt:1)
at at.bitfire.davdroid.sync.CalendarSyncManager$$ExternalSyntheticLambda8.invoke(R8$$SyntheticClass:3)
at at.bitfire.davdroid.sync.SyncException$Companion.wrapWithRemoteResource(SyncException.kt:6)
at at.bitfire.davdroid.sync.CalendarSyncManager.queryCapabilities(CalendarSyncManager.kt:16)
at at.bitfire.davdroid.sync.SyncManager.performSync(SyncManager.kt:70)
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)
HTTP REQUEST
Request{method=PROPFIND, url=https://dav.mydomain.com/dav/calendars/user@mydomain.com/default/, headers=[Depth:0, User-Agent:DAVx5/4.4.9-ose (dav4jvm; okhttp/4.12.0) Android/15, Accept-Language:en-US, en;q=0.7, *;q=0.5, Accept-Encoding:br,gzip, Authorization:Basic redactedQ==]}
<?xml version='1.0' encoding='UTF-8' ?><propfind xmlns="DAV:" xmlns:CAL="urn:ietf:params:xml:ns:caldav" xmlns:CARD="urn:ietf:params:xml:ns:carddav"><prop><CAL:max-resource-size /><supported-report-set /><n0:getctag xmlns:n0="http://calendarserver.org/ns/" /><sync-token /></prop></propfind>
HTTP RESPONSE
Response{protocol=http/1.1, code=500, message=Internal Server Error, url=https://dav.mydomain.com/dav/calendars/user@mydomain.com/default/}
<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:sabredav-version>4.6.0</s:sabredav-version>
<s:exception>Error</s:exception>
<s:message>Call to undefined function Sabre\DAV\Auth\Backend\imap_open()</s:message>
</d:error>
REMOTE RESOURCE
https://dav.mydomain.com/dav/calendars/user@mydomain.com/default/
SOFTWARE INFORMATION
┌─────────────────────────────────────────┬─────────────────────────────────────────────────┬────────────┬─────────────────────┬───────┐
│ Package │ Version │ Code │ Installer │ Notes │
├─────────────────────────────────────────┼─────────────────────────────────────────────────┼────────────┼─────────────────────┼───────┤
│ at.bitfire.davdroid │ 4.4.9-ose │ 404090001 │ org.fdroid.fdroid │ │
│ com.android.providers.contacts │ 15 │ 35 │ — │ │
│ com.android.providers.calendar │ 15 │ 35 │ — │ │
│ com.google.android.calendar │ 2025.16.0-749613736-release │ 2017747407 │ com.android.vending │ │
│ ws.xsoh.etar │ 1.0.48 │ 48 │ org.fdroid.fdroid │ │
│ com.google.android.apps.messaging │ messages.android_20250422_03_RC01.phone_dynamic │ 276717063 │ com.android.vending │ │
│ com.google.android.googlequicksearchbox │ 16.16.43.sa.arm64 │ 301507779 │ com.android.vending │ │
└─────────────────────────────────────────┴─────────────────────────────────────────────────┴────────────┴─────────────────────┴───────┘
SYSTEM INFORMATION
Android version: 15
Here are davis logs
[2025-05-06T16:10:50.246235+02:00] request.INFO: Matched route "dav". {"route":"dav","route_parameters":{"_route":"dav","_controller":"App\\Controller\\DAVController::dav","path":"calendars/user@mydomain.com/default/"},"request_uri":"https://dav.mydomain.com/dav/calendars/user@mydomain.com/default/","method":"PROPFIND"} []
[2025-05-06T16:10:50.264559+02:00] security.DEBUG: Checking for authenticator support. {"firewall_name":"main","authenticators":1} []
[2025-05-06T16:10:50.264577+02:00] security.DEBUG: Checking support on authenticator. {"firewall_name":"main","authenticator":"App\\Security\\LoginFormAuthenticator"} []
[2025-05-06T16:10:50.264583+02:00] security.DEBUG: Authenticator does not support the request. {"firewall_name":"main","authenticator":"App\\Security\\LoginFormAuthenticator"} []
[2025-05-06T16:10:50.382168+02:00] app.ERROR: [500]: Error - Call to undefined function Sabre\DAV\Auth\Backend\imap_open() [{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/src/Services/IMAPAuth.php","line":54,"function":"imapOpen","class":"Sabre\\DAV\\Auth\\Backend\\IMAP","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/dav/lib/DAV/Auth/Backend/IMAP.php","line":80,"function":"imapOpen","class":"App\\Services\\IMAPAuth","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/dav/lib/DAV/Auth/Backend/AbstractBasic.php","line":103,"function":"validateUserPass","class":"Sabre\\DAV\\Auth\\Backend\\IMAP","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/dav/lib/DAV/Auth/Plugin.php","line":179,"function":"check","class":"Sabre\\DAV\\Auth\\Backend\\AbstractBasic","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/dav/lib/DAV/Auth/Plugin.php","line":135,"function":"check","class":"Sabre\\DAV\\Auth\\Plugin","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"beforeMethod","class":"Sabre\\DAV\\Auth\\Plugin","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/dav/lib/DAV/Server.php","line":456,"function":"emit","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/src/Controller/DAVController.php","line":332,"function":"start","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/symfony/http-kernel/HttpKernel.php","line":178,"function":"dav","class":"App\\Controller\\DAVController","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/symfony/http-kernel/HttpKernel.php","line":76,"function":"handleRaw","class":"Symfony\\Component\\HttpKernel\\HttpKernel","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/symfony/http-kernel/Kernel.php","line":185,"function":"handle","class":"Symfony\\Component\\HttpKernel\\HttpKernel","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/public/index.php","line":33,"function":"handle","class":"Symfony\\Component\\HttpKernel\\Kernel","type":"->"}] []
[2025-05-06T16:10:50.566516+02:00] request.INFO: Matched route "dav". {"route":"dav","route_parameters":{"_route":"dav","_controller":"App\\Controller\\DAVController::dav","path":"addressbooks/user@mydomain.com/default/"},"request_uri":"https://dav.mydomain.com/dav/addressbooks/user@mydomain.com/default/","method":"PROPFIND"} []
[2025-05-06T16:10:50.567157+02:00] security.DEBUG: Checking for authenticator support. {"firewall_name":"main","authenticators":1} []
[2025-05-06T16:10:50.567171+02:00] security.DEBUG: Checking support on authenticator. {"firewall_name":"main","authenticator":"App\\Security\\LoginFormAuthenticator"} []
[2025-05-06T16:10:50.567178+02:00] security.DEBUG: Authenticator does not support the request. {"firewall_name":"main","authenticator":"App\\Security\\LoginFormAuthenticator"} []
[2025-05-06T16:10:50.572390+02:00] app.ERROR: [500]: Error - Call to undefined function Sabre\DAV\Auth\Backend\imap_open() [{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/src/Services/IMAPAuth.php","line":54,"function":"imapOpen","class":"Sabre\\DAV\\Auth\\Backend\\IMAP","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/dav/lib/DAV/Auth/Backend/IMAP.php","line":80,"function":"imapOpen","class":"App\\Services\\IMAPAuth","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/dav/lib/DAV/Auth/Backend/AbstractBasic.php","line":103,"function":"validateUserPass","class":"Sabre\\DAV\\Auth\\Backend\\IMAP","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/dav/lib/DAV/Auth/Plugin.php","line":179,"function":"check","class":"Sabre\\DAV\\Auth\\Backend\\AbstractBasic","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/dav/lib/DAV/Auth/Plugin.php","line":135,"function":"check","class":"Sabre\\DAV\\Auth\\Plugin","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"beforeMethod","class":"Sabre\\DAV\\Auth\\Plugin","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/dav/lib/DAV/Server.php","line":456,"function":"emit","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/src/Controller/DAVController.php","line":332,"function":"start","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/symfony/http-kernel/HttpKernel.php","line":178,"function":"dav","class":"App\\Controller\\DAVController","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/symfony/http-kernel/HttpKernel.php","line":76,"function":"handleRaw","class":"Symfony\\Component\\HttpKernel\\HttpKernel","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/vendor/symfony/http-kernel/Kernel.php","line":185,"function":"handle","class":"Symfony\\Component\\HttpKernel\\HttpKernel","type":"->"},{"file":"/nix/store/679xdyqr4dp3hrxfhfwykghhhbkrs4pp-davis-5.0.2/public/index.php","line":33,"function":"handle","class":"Symfony\\Component\\HttpKernel\\Kernel","type":"->"}] []
Meanwhile my nginx logs show this:
{"time": "2025-05-06T15:54:12+02:00","remote_addr": "","x_forwarded_for": "10.9.6.17","remote_user": "user@mydomain.com","bytes_sent": 596,"request_time": 0.013,"status": 500,"vhost": "dav.mydomain.com","request_proto": "HTTP/1.1","path": "/index.php","request_query": "","request_length": 791,"duration": 0.013,"method": "PROPFIND","http_referrer": "","http_user_agent": "DAVx5/4.4.9-ose (dav4jvm; okhttp/4.12.0) Android/15","upstream_addr": "unix:/run/phpfpm/davis.sock"}
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingdependency bugBug linked to a dependencyBug linked to a dependency