I've been using SyServ_Demo_win32_3.0.2.2 server to test against my own syncml server, they works very well.

Yesterday, as the need of syncing lots of data, I changed the Synthesis server to SyServ_Pro_win32_3.0.3.2 with MS SQL as the database backend. The client and server can communicate device info with each other. But after client sending the sync data to server, then the server give back the 403 status code for SYNC command and say "SYNC received too early".

what does "early" mean? SYNC should be putting after some other syncml commands? But why it can works normally with SyServ_Demo_win32_3.0.2.2 server?

this "SYNC received too early" (and consequential Error 403) is most probably caused by a small bug in the server - which gets visible only under special circumstances, usually when loading the sync data takes longer than what is set for the maximum request processing time (30 seconds by default).

With the text file based demo, this is almost impossible to happen (it would need gigabytes of text to take >30 seconds to read). However with a SQL database, especially with a just started server this is more likely.

We have been working on analyzing a similar problem report we got last week, so we're able to release an update of the server already today (3.0.3.4) which fixes that problem.