Syncstate problems with Evolution EWS

I am using Evolution EWS with an Office 365 account. Overall it works well for emails, calendar and contacts. But over time the status bar of Evolution when in the mail app gets crowded with messages about what it is doing (checking for new mail, storing folder “inbox”, Microsoft 365 server is busy etc.) and at some point I can’t even read the messages anymore because there are too many.
If I try to close Evolution, it freezes and after some time I get the option to force to close it immediately. If I do that, next restart I get a sync state error (sync state not found: The sync state generation is not found; generation [3494];[highest=3541[3541][3539][3540].
And after that I just cannot get my new mails, this message will just come back all the time. I can remove and setup again my account and it works fine for a little while until it happens again. I always end up having to force evolution to quit and then I have the sync state problem.
Any idea what is going on? How can I debug that better to give you as much info as possible to help me?

Hi, please always state your distribution and Evolution software version. Thanks!

Thanks for your reply. Right now I have Evolution 3.54 on Ubuntu 24.10. I have notice the exact same problem on several other distros (Manjaro, Opensuse, Fedora, Debian), always the latest available version of both the distro and Evolution.
I have started Evolution with the command “EWS_DEBUG=2 evolution >& logfile” but so far there is nothing in the log file even though I am receiving the sync state error message.

Ok, I am getting this line several times in the log file:

(org.gnome.Evolution:27191): evolution-util-CRITICAL **: 15:55:28.736: e_table_sort_info_sorting_set_nth: assertion ‘E_IS_TABLE_COLUMN_SPECIFICATION (spec)’ failed

I could not any information about an error code 27191. Does anybody know what that error means?

I could not any information about an error code 27191. Does anybody
know what that error means?

Hi,

it’s not an error code, it’s a process ID which generated that runtime
warning. This particular runtime warning has no impact on your
connection issues. It would be good to figure out what causes it, but
let’s skip it for now.

the command “EWS_DEBUG=2 evolution >& logfile” but so far there
is nothing in the log file

I believe it’s because you have the account configured as type
“Microsoft 365” (M365), not as type “Exchange Web Services” (EWS).
That you see the “Microsoft 365 server is busy” in the status bar sort
of confirms that. This is shown when the server sends the request to
the client to back off for some time. You should see how long it’ll
take. It means the server is not willing to respond to anything until
the client waits for the specified time. They have there this thing to
not have the server overloaded, I believe. When you’ll not keep it
waiting it can cause incomplete data being saved in the local cache. It
should not happen, of course, but it does for you.

The evolution-ews 3.54.1 contains a change, which should recover from
the sync state error:

I guess the returned error code is different in this case. When you run
Evolution as:

M365_DEBUG=1 evolution &>log.txt

Then it’ll print a lot of other information in the log. Do not share it
anywhere, it contains a raw communication between the client and the
server, including authentication tokens. I’d like to ask you so search
the log for the error message you see in the Evolution UI, some part of
it should be there for sure, and copy here the portion with the error
code. I can add it to the code to be handled similarly as the
SyncStateNotFound error.

For the restore of the internal cache data problem, you can drop the
cache only, instead of dropping the account and entering it again. It
may save download the calendars, tasks, contacts at least, thus giving
some break to the server. The cache is stored under:

~/.cache/evolution/mail//

which you can remove when Evolution is closed and it’ll be re-
downloaded the next start. If you’ve more remove mail accounts
configured (like IMAP and such), then the directory will contain more
directories for these accounts. You can recognize the one for the M365
on the existence of a folder-tree file in that directory. If you want
to save even more bandwidth, you can delete only that file, or edit it
instead of deleting it and remove only the line which starts with
DeltaLink= , which should be near the top of the file. By the way,
does this DeltaLink key contain anything like a URL, probably
starting with https://graph.microsoft.com/v1.0/users/…? Do not
share it here, just check what the value looks like, please.

Bye,
Milan

Thank you for the detailed answer. Yes, getting rid of the cache for that account made the syncstatenotfound message to go away and everything was working after. The debug log file did contain that message initially, it did not come back after that. It seems I have to let Evolution finish its initial sync without interrupting it. I left it opened overnight and all day and now the status bar is empty and I can close and open Evolution with no problem.
By the way, the wiki page linked in the first reply does not contain the command “M365_DEBUG=1 evolution &>log.txt”, only the command for EWS, I think it should be added.
I will update Evolution as soon as possible and check if it behaves correctly and that I don’t have to delete the cache anymore.

Did your log contain the SyncStateNotFound error code, thus you run evolution-ews-3.54.0? It’s the same version as the Evolution, usually, thus Help->About in the Evolution may work, though if the distro does not update them together (they are released together, when there are any changes), then they may not match. I do not know how your distro does this.

About the Wiki page, you are right, I just added a section there.

You are also right with the initial setup/download. Large accounts take longer, but once the download is over it should be better, reading only the new changes from the server.