Caldav-Calendar shows sometimes triangle

Hi,

we’re using latest EM Client with Caldav / Carddav. Our server is mailcow which is based on Sogo.

Sometimes when we open calendar, there is shown a triangle at the right side of the calendar name:

triangle

When the triangle is shown, the calendar sync doesn’t work.
Clicking the sync-button doesn’t help:

sync

We only can solve the issue with closing and restarting EM Client.
After that the sync works immediately and connection to Sogo-caldav-server is perfect for hours and days.

We have one client where EM Client is openend 24h / 7days a week, because it’s a workstation where the user often uses remotedesktop for homeoffice.
I’m not sure if this is a reason, but it seems that the issue appears more often than on other workstations.

The question is: How can we avoid this connection error with the triangle, and why does ist appear?
We tried to comprehend this with deactivating the lan-card.
But after reavtivating the EM Client-Calendar does the reconnect perfectly.

The whole problem is, that the user creates entrys in the calendar and sends invitations.
But the invitations aren’t sent until the triangle appears.
Often the user doesn’t recognizes that…he’s only wondering that nobody gets the calendar-invitations.

Best Regards!

Good morning,

today we verified the problem.
While EM Clients were opened, we had to reboot our Firewall because there was a new update.
So the Internet-Connection was down for ~ 1 minute.

After that we looked in the calendar: Now the triangle appeared.
We could only resolve this by closing EM Client and starting again.

Screenshot 2023-11-23 081616

Question: How can we fix that?
Why does the calendar show the triangle and why it doesn’t make a reconnect?

Best regards
Dirk

I have exactly the same problem, i sync with a synology-station. The problem ist existent on the Calendars and the contacts.

We also checked the issue by disconnecting and reconnecting the lan-cable.
In this case EM Client does a reconnect to Caldav.

What does the EM Client-Support say?
Do you can reproduce that?

Clicking on the warning chevron will try re-connect to the server.

If it is not able to do that, or you just want more details, go to Menu > Operations > Log tab, where there should be a CalDAV error that will give more about why it is not connecting or whatever else the issue is.

Hi Gary,

thanks for reply.
When we click on the warning chevron, it doesn’t make a reconnect.
Also if we do multiple click, there is no reconnect.

We’ve activated logging and will post you the log file.

Gary, which Logfiles do yo need?

Hi,
same here (mailcow mailserver). I just can solve this temporarily by switching CalDAV / CardDAV between using credentials of account and explicit given credentials (with same data). After some time triangle is back (and sync fails)) and I have to switch back. Really annoying…
Best Regards
Holger
credentials

I’ve been solving the problem by turning on logging which enables a successful reconnect. I can confirm that changing the credentials as per @Holger_Brinkhaus also works. There is evidently an issue with the CALDAV implementation. Most particulalry, clicking on the red triangle doesn’t perform as a solid a reconnection attempt as changing anything in the account settings. I ahve just confirmed this by simply turning off and then on again the “Services” selection on the account settings. This too seems to fix things.

Screenshot 2023-11-27 114125

@Gary , do you think you have enough evidence now to look into what’s happening?

If you briefly go to “Menu / File / Offline” and then go online again, everything will be synchronized.

@Tomi: That’s right. But you have to do so again and again.
That is really annoying and in meantime I am looking for a different software. I have to rely on synced information…

It’s the same situation in our company.
I want to use EM Client, because i think it’s a very good product.
Our CEOs are on the edge, because they don’t want to click any triangles or restart their EM Client several times per week.

So Gary, i asked you what logfiles you want to see?
Do you can reproduce the issue and how can it be solved completely?

I already gave that information in my original comment on this topic.

Yes, i’ve read that, but then i asked, which logfile you need? :grinning:

Well, I did not respond because that is not what I said to do.

I said go to Menu > Operations > Log tab, where there should be a CalDAV error that will give more about why it is not connecting or whatever else the issue is.

This morning one client, which runs often 24h / day, showed the triangle.
Reconnect with clicking on triangle wasn’t possible.
Only closing and restart of EM Client worked.

All other clients worked while the problem persists.
The url of the carddav-server was available at this time.

I post the end of Caldav_Carddav-logfile:


19:50:12.126|00D|
19:50:12.126|00D| Request:
20:00:11.251|016| Method: PROPFIND, RequestUri: ‘https://mail2.xxxxx.de:444/SOGo/dav/[email protected]/Calendar/’, Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
20:00:11.251|016| {
20:00:11.251|016| Accept: text/xml
20:00:11.251|016| Brief: t
20:00:11.251|016| Depth: 1
20:00:11.251|016| User-Agent: eMClient/9.2.2157.0
20:00:11.251|016| Content-Type: text/xml; charset=utf-8
20:00:11.252|016| }
20:00:11.252|016| <?xml version="1.0" encoding="utf-8"?><D:propfind xmlns:D=“DAV:”><D:prop><D:getetag /><D:displayname /><D:resourcetype /><D:sync-token /><D:supported-report-set /></D:prop></D:propfind>
20:00:11.252|016|
20:00:11.252|016| Exception: MailClient.Accounts.ConnectionException: Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat. (mail2.xxxxx.de:444)
20:00:32.357|016| —> System.Net.Http.HttpRequestException: Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat. (mail2.xxxxx.de:444)
20:00:32.357|016| —> System.Net.Sockets.SocketException (10060): Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat.
20:00:32.357|016| at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
20:00:32.357|016| at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
20:00:32.357|016| at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|277_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
20:00:32.357|016| at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
20:00:32.357|016| — End of inner exception stack trace —
20:00:32.357|016| at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
20:00:32.357|016| at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
20:00:32.357|016| at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
20:00:32.357|016| at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(HttpRequestMessage request)
20:00:32.357|016| at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
20:00:32.357|016| at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
20:00:32.357|016| at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
20:00:32.358|016| at System.Net.Http.AuthenticationHelper.SendWithAuthAsync(HttpRequestMessage request, Uri authUri, Boolean async, ICredentials credentials, Boolean preAuthenticate, Boolean isProxyAuth, Boolean doRequestAuth, HttpConnectionPool pool, CancellationToken cancellationToken)
20:00:32.358|016| at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
20:00:32.358|016| at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
20:00:32.358|016| at MailClient.Protocols.InteractionController.HttpClientCertificationValidationMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
20:00:32.358|016| at MailClient.Protocols.Common.HttpClientHandlers.HttpClientLoggingHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
20:00:32.358|016| at MailClient.Protocols.Common.HttpClientHandlers.HttpClientBackoffHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
20:00:32.358|016| at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
20:00:32.358|016| at MailClient.Protocols.CalDav.ProtocolCommands.Connector.RunCommand(CalDavAccount account, ICommand command, CancellationToken cancellationToken)
20:00:32.358|016| — End of inner exception stack trace —
20:00:32.358|016| at MailClient.Protocols.CalDav.ProtocolCommands.Connector.RunCommand(CalDavAccount account, ICommand command, CancellationToken cancellationToken)
20:00:32.358|016| at MailClient.Protocols.CalDav.FolderSynchronizer.GetFolderList(IListFoldersProgress progress, Folder homeFolder, CancellationToken cancellationToken)
20:00:32.358|016| at MailClient.Protocols.Common.FolderSynchronizer.<>c__DisplayClass16_0.b__0(WorkerStatus status, CancellationToken cancellationToken)
20:00:32.358|016| at MailClient.Protocols.CalDav.CalDavGenericCommand.Execute(WorkerStatus status)
20:00:32.358|016| at MailClient.Commands.Command.Process(WorkerStatus status)
20:00:32.358|016| — End of stack trace from previous location —
20:00:32.359|016| at MailClient.Storage.Synchronization.FolderSynchronizerExtensions.SynchronizeSubfoldersAsync(IFolderSynchronizer synchronizer, Folder folder, SynchronizationPriority priority, CancellationToken cancellationToken)
20:00:32.360|05E| AccountBase.ChangeOnlineState : State changed to OFFLINE due BrokenConnection

Hello Gary,

today the issue with the Caldav-triangle appeared again:

Screenshot 2023-12-12 123142 Kal1

We looked at Menu > Operations > Erros…there is nothing:

Then we looked at Menu > Operations > Log:


11:44:50 [email protected] [CalDAV / CardDAV] MailClient.Accounts.ConnectionException: Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat. (mail2.xxx-xxxx.de:444)
—> System.Net.Http.HttpRequestException: Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat. (mail2.xxx-xxxx.de:444)
—> System.Net.Sockets.SocketException (10060): Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat.
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|277_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
— End of inner exception stack trace —
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(HttpRequestMessage request)
at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.AuthenticationHelper.SendWithAuthAsync(HttpRequestMessage request, Uri authUri, Boolean async, ICredentials credentials, Boolean preAuthenticate, Boolean isProxyAuth, Boolean doRequestAuth, HttpConnectionPool pool, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at MailClient.Protocols.InteractionController.HttpClientCertificationValidationMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at MailClient.Protocols.Common.HttpClientHandlers.HttpClientBackoffHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) at MailClient.Protocols.CalDav.ProtocolCommands.Connector.RunCommand(CalDavAccount account, ICommand command, CancellationToken cancellationToken) --- End of inner exception stack trace --- at MailClient.Protocols.CalDav.ProtocolCommands.Connector.RunCommand(CalDavAccount account, ICommand command, CancellationToken cancellationToken) at MailClient.Protocols.CalDav.FolderSynchronizer.GetFolderList(IListFoldersProgress progress, Folder homeFolder, CancellationToken cancellationToken) at MailClient.Protocols.Common.FolderSynchronizer.<>c__DisplayClass16_0.<EnqueueGetFolderList>b__0(WorkerStatus status, CancellationToken cancellationToken) at MailClient.Protocols.CalDav.CalDavGenericCommand.Execute(WorkerStatus status) at MailClient.Commands.Command.Process(WorkerStatus status) --- End of stack trace from previous location --- at MailClient.Storage.Synchronization.FolderSynchronizerExtensions.SynchronizeSubfoldersAsync(IFolderSynchronizer synchronizer, Folder folder, SynchronizationPriority priority, CancellationToken cancellationToken) EnqueuedStackTrace = at MailClient.Protocols.Common.FolderSynchronizer.MailClient.Storage.Synchronization.IFolderSynchronizer.SynchronizeSubfolders(Folder folder, SynchronizationPriority priority, Action1 completed)
at MailClient.Storage.Synchronization.FolderSynchronizerExtensions.<>c__DisplayClass0_0.b__1()
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.<>c.<.cctor>b__272_0(Object obj)
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
at System.Threading.Thread.StartCallback()
GUIStatus_Exception_Reported = True


Clicking at the triangle doesn’t work.
You have to close and restart EM Client.
The caldav-server is available all the time.
I think the problem appears, if Em Client gets a time out while contacting the caldav-server.

That’s a server issue. The server probably shut down or restarted and silently closed all connections.

No, i think that’s no server issue.
Why do the other Workstations with EM Client have no connection problem in the same time?
Why do other Email-Clients like Thunderbird not show this issue?
They are all in the same network behind the same internet connection.
The server has definitely no shutdown or restart.

I think the only possible cause is when in the moment of contacting the caldav-server. the internet connection has an overload or gets an timeout.
But in this case i expect that EM Client does a reconnect a few seconds or a few minutes later.

1 Like

I can confirm the issue. Bought 6 Licenses last week being generally very happy with emClient compared to Outlook, a friend is currently evaluating emClient (with also a need of 5 Pro’s).

Had this issue several times: At home (5 licenses), my work (1 license) and also my friend is complaining about this. All installations using CalDAV to SoGo (Mailcow). I can confirm no service interruptions at all server side.

All IOS native calendars or Outlook with CalDavSyncronizer have no issues at all.

I’ve activated the CalDAV logs in the settings on two of my machines and will report once these catch the issue again.

That’s pretty much a showstopper and at least my friend will not migrate if this is not solved. @Gary