Sync errors and possible reasons
Below you'll find an explanation of some error reports and possible reasons.
Contents
- 1 java.lang.IllegalArgumentException: Username may not be null
- 2 The server returned status code 500 in response to a calendar-query request.
- 3 java.lang.NullPointerException: null
- 4 The server returned status code 502 in response to a calendar-query request.
- 5 org.apache.http.conn.HttpHostConnectException: Connection to YOUR SERVER URL refused
- 6 org.apache.http.client.ClientProtocolException: calendar-query failed
- 7 javax.net.ssl.SSLException: Read error: ssl=0x34b548: I/O error during system call, Connection reset by peer
- 8 javax.net.ssl.SSLException: Read error: ssl=0x351428: I/O error during system call, Connection timed out
- 9 org.apache.http.MalformedChunkCodingException: Chunked stream ended unexpectedly
- 10 android.database.sqlite.SQLiteException: ambiguous column name: _id (code 1): , while compiling: SELECT deleted, ...
- 11 Status Code 400 (response is empty)
java.lang.IllegalArgumentException: Username may not be null
The error messages
java.lang.NullPointerException: null org.dmfs.dav.Dav.<init>(Dav.java:202) org.dmfs.dav.Dav.<init>(Dav.java:164) org.dmfs.dav.CalDav.<init>(CalDav.java:114) org.dmfs.caldav.syncadapter.SyncAdapter.sync(SyncAdapter.java:231) org.dmfs.syncadapter.AbstractSyncAdapter.onPerformSync(AbstractSyncAdapter.java:139) android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:164)
and
java.lang.IllegalArgumentException: Username may not be null org.apache.http.auth.UsernamePasswordCredentials.<init>(UsernamePasswordCredentials.java:84) org.dmfs.dav.Dav.setCredentials(Dav.java:707) org.dmfs.caldav.syncadapter.SyncAdapter.sync(SyncAdapter.java:264) org.dmfs.syncadapter.AbstractSyncAdapter.onPerformSync(AbstractSyncAdapter.java:139) android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:247)
are caused by a bug in Android. The app uses Android's account manager to store the user name and the server URL to sync to. Under some rare conditions (usually after adding or removing an account) the account manager doesn't return the stored values but null instead. The app doesn't expect that and crashes. Strange enough: 95% of all reports of this issue are from HTC devices.
If you get this error, please try to reboot and/or recreate the account on your device. A simple reboot worked for most users.
I'm already working on a solution for this issue. I'll implement a service that stores the account configuration in its own database. That will circumvent a few other issues with the account manager storage as well.
The server returned status code 500 in response to a calendar-query request.
Status code 500 means "internal server error" and that's what it is. There is a known issue with Yahoo!. Since 18. January 2013 many Yahoo! users reported this error. Some users reported this was fixed when they re-added their accounts. To do so please do the following:
- On Android 2.x, Android 3.x and Android 4.0.x
- Go to "settings" -> "Accounts & sync" -> Your account and remove the account.
- Set up the account just like the first time.
- On Android 4.1.x and Android 4.2.x
- Go to "settings" -> "SmoothSync for Yahoo!® Calendar" -> Your account and remove the account.
- Set up the account just like the first time.
java.lang.NullPointerException: null
NullPointerExceptions are caused by bugs in most (if not all) cases. However not all of these bug are in CalDAV-Sync/CardDAV-Sync/SmoothSync. Sometimes the initial cause of a NullPointerException is in Android or an other software component. Please see above for a common cause.
The server returned status code 502 in response to a calendar-query request.
This is a server error. Especially Yahoo! servers return this error often. If you're syncing to Yahoo, please report this error to Yahoo! not to me. I can't do anything about it. If you're not syncing to Yahoo report this error to your service provider.
org.apache.http.conn.HttpHostConnectException: Connection to YOUR SERVER URL refused
The name of this error may be somewhat misleading. In many cases it just means the connection to the server has timed out - i.e. no connection could be established. This may happen due to insufficient connectivity or when a sync is triggered during a phone call (many devices loose their data connection during a voice call).
org.apache.http.client.ClientProtocolException: calendar-query failed
This is probably a server bug. You're probably using ownCloud or an older version of SabreDAV (see known issues in ownCloud). Try to upgrade your SabreDAV installation (or the SabreDAV part of ownCloud). If you're not using SabreDAV or ownCloud and you get this error send me an email, please!
javax.net.ssl.SSLException: Read error: ssl=0x34b548: I/O error during system call, Connection reset by peer
Probably a connectivity issue. If this happens very often you should check your connectivity or your server.
javax.net.ssl.SSLException: Read error: ssl=0x351428: I/O error during system call, Connection timed out
Probably a connectivity issue. If this happens very often you should check your connectivity or your server.
org.apache.http.MalformedChunkCodingException: Chunked stream ended unexpectedly
This is probably a connectivity issue as well. If you get this occasionally there is nothing to worry about. If you get it always you should check your server configuration.
android.database.sqlite.SQLiteException: ambiguous column name: _id (code 1): , while compiling: SELECT deleted, ...
This error occurs when using MIUI ROM. It is caused by a bug in MIUI. It's been reported some time ago (see Bug in contacts provider ), but it doesn't look as if it has been fixed yet. At present MIUI is not compatible with this app.
Status Code 400 (response is empty)
Often caused by a calendar that's been removed from the server.