The situation is as follows. We have machines A and B, we copy 6Mb to ./Sync on A, and we wait for it to be uploaded to B. I open web gui on A, the upload speed is constant, roughly 50kb/s, but during most of the uploading time the progress is not updated.
These are the events reported on A:
{"id":1380,"time":"2015-10-04T19:37:45.992014964+01:00","type":"Ping","data":null}, {"id":1381,"time":"2015-10-04T19:38:20.255840728+01:00","type":"StateChanged","data":{"duration":59.668125132,"folder":"default","from":"idle","to":"scanning"}}, {"id":1382,"time":"2015-10-04T19:38:21.466968425+01:00","type":"LocalIndexUpdated","data":{"folder":"default","items":41,"version":23540}}, {"id":1383,"time":"2015-10-04T19:38:21.844767893+01:00","type":"StateChanged","data":{"duration":1.588922137,"folder":"default","from":"scanning","to":"idle"}}, {"id":1384,"time":"2015-10-04T19:38:23.572953176+01:00","type":"FolderSummary","data":{"folder":"default","summary":{"globalBytes":1263485884,"globalDeleted":5137,"globalFiles":6568,"ignorePatterns":false,"inSyncBytes":1263485884,"inSyncFiles":6568,"invalid":"","localBytes":1263411644,"localDeleted":4557,"localFiles":6568,"needBytes":0,"needFiles":0,"state":"idle","stateChanged":"2015-10-04T19:38:21.84476524+01:00","version":47676}}}, {"id":1385,"time":"2015-10-04T19:38:24.480113424+01:00","type":"FolderCompletion","data":{"completion":99.50020610402072,"device":"TOI77UD-VC7BQCP-3UWJO3J-S5QHDJN-3PRAHKT-PG3EEKX-YEM7UPF-BQC3XQO","folder":"default"}}, {"id":1386,"time":"2015-10-04T19:38:25.003716565+01:00","type":"RemoteIndexUpdated","data":{"device":"TOI77UD-VC7BQCP-3UWJO3J-S5QHDJN-3PRAHKT-PG3EEKX-YEM7UPF-BQC3XQO","folder":"default","items":24,"version":24160}}, {"id":1387,"time":"2015-10-04T19:38:26.049663311+01:00","type":"StateChanged","data":{"duration":4.204889971,"folder":"default","from":"idle","to":"syncing"}}, {"id":1388,"time":"2015-10-04T19:38:26.385118225+01:00","type":"StateChanged","data":{"duration":0.335449327,"folder":"default","from":"syncing","to":"idle"}}, {"id":1389,"time":"2015-10-04T19:38:28.770779363+01:00","type":"FolderSummary","data":{"folder":"default","summary":{"globalBytes":1263485884,"globalDeleted":5137,"globalFiles":6568,"ignorePatterns":false,"inSyncBytes":1263485884,"inSyncFiles":6568,"invalid":"","localBytes":1263411644,"localDeleted":4557,"localFiles":6568,"needBytes":0,"needFiles":0,"state":"idle","stateChanged":"2015-10-04T19:38:26.385115292+01:00","version":47700}}}, {"id":1390,"time":"2015-10-04T19:38:29.254033794+01:00","type":"RemoteIndexUpdated","data":{"device":"TOI77UD-VC7BQCP-3UWJO3J-S5QHDJN-3PRAHKT-PG3EEKX-YEM7UPF-BQC3XQO","folder":"default","items":2,"version":24162}}, {"id":1391,"time":"2015-10-04T19:38:30.100692467+01:00","type":"FolderCompletion","data":{"completion":99.52243945033771,"device":"TOI77UD-VC7BQCP-3UWJO3J-S5QHDJN-3PRAHKT-PG3EEKX-YEM7UPF-BQC3XQO","folder":"default"}}, {"id":1392,"time":"2015-10-04T19:38:30.328207512+01:00","type":"StateChanged","data":{"duration":3.94308391,"folder":"default","from":"idle","to":"syncing"}}, {"id":1393,"time":"2015-10-04T19:38:30.713010811+01:00","type":"StateChanged","data":{"duration":0.384800087,"folder":"default","from":"syncing","to":"idle"}}, {"id":1394,"time":"2015-10-04T19:38:31.205481247+01:00","type":"RemoteIndexUpdated","data":{"device":"TOI77UD-VC7BQCP-3UWJO3J-S5QHDJN-3PRAHKT-PG3EEKX-YEM7UPF-BQC3XQO","folder":"default","items":6,"version":24168}}, {"id":1395,"time":"2015-10-04T19:38:32.272125696+01:00","type":"StateChanged","data":{"duration":1.5591107640000001,"folder":"default","from":"idle","to":"syncing"}}, {"id":1396,"time":"2015-10-04T19:38:32.684031875+01:00","type":"StateChanged","data":{"duration":0.41190101100000004,"folder":"default","from":"syncing","to":"idle"}}, {"id":1397,"time":"2015-10-04T19:38:32.732162927+01:00","type":"FolderSummary","data":{"folder":"default","summary":{"globalBytes":1263485884,"globalDeleted":5137,"globalFiles":6568,"ignorePatterns":false,"inSyncBytes":1263485884,"inSyncFiles":6568,"invalid":"","localBytes":1263411644,"localDeleted":4557,"localFiles":6568,"needBytes":0,"needFiles":0,"state":"idle","stateChanged":"2015-10-04T19:38:32.684029151+01:00","version":47708}}}, {"id":1398,"time":"2015-10-04T19:38:34.273213106+01:00","type":"FolderCompletion","data":{"completion":99.53188847800556,"device":"TOI77UD-VC7BQCP-3UWJO3J-S5QHDJN-3PRAHKT-PG3EEKX-YEM7UPF-BQC3XQO","folder":"default"}}, {"id":1399,"time":"2015-10-04T19:38:44.864864499+01:00","type":"FolderSummary","data":{"folder":"default","summary":{"globalBytes":1263485884,"globalDeleted":5137,"globalFiles":6568,"ignorePatterns":false,"inSyncBytes":1263485884,"inSyncFiles":6568,"invalid":"","localBytes":1263411644,"localDeleted":4557,"localFiles":6568,"needBytes":0,"needFiles":0,"state":"idle","stateChanged":"2015-10-04T19:38:32.684029151+01:00","version":47708}}}, {"id":1400,"time":"2015-10-04T19:38:45.828251488+01:00","type":"FolderCompletion","data":{"completion":99.53188847800556,"device":"TOI77UD-VC7BQCP-3UWJO3J-S5QHDJN-3PRAHKT-PG3EEKX-YEM7UPF-BQC3XQO","folder":"default"}}, {"id":1401,"time":"2015-10-04T19:38:46.033076839+01:00","type":"Ping","data":null}, {"id":1402,"time":"2015-10-04T19:39:46.033248036+01:00","type":"Ping","data":null}, {"id":1403,"time":"2015-10-04T19:40:22.286631138+01:00","type":"RemoteIndexUpdated","data":{"device":"TOI77UD-VC7BQCP-3UWJO3J-S5QHDJN-3PRAHKT-PG3EEKX-YEM7UPF-BQC3XQO","folder":"default","items":9,"version":24177}}, {"id":1404,"time":"2015-10-04T19:40:23.332583627+01:00","type":"StateChanged","data":{"duration":110.648546026,"folder":"default","from":"idle","to":"syncing"}}, {"id":1405,"time":"2015-10-04T19:40:23.681369993+01:00","type":"StateChanged","data":{"duration":0.348781338,"folder":"default","from":"syncing","to":"idle"}}, {"id":1406,"time":"2015-10-04T19:40:25.426858264+01:00","type":"FolderSummary","data":{"folder":"default","summary":{"globalBytes":1263485884,"globalDeleted":5137,"globalFiles":6568,"ignorePatterns":false,"inSyncBytes":1263485884,"inSyncFiles":6568,"invalid":"","localBytes":1263411644,"localDeleted":4557,"localFiles":6568,"needBytes":0,"needFiles":0,"state":"idle","stateChanged":"2015-10-04T19:40:23.681367409+01:00","version":47717}}}, {"id":1407,"time":"2015-10-04T19:40:26.325974771+01:00","type":"FolderCompletion","data":{"completion":100,"device":"TOI77UD-VC7BQCP-3UWJO3J-S5QHDJN-3PRAHKT-PG3EEKX-YEM7UPF-BQC3XQO","folder":"default"}}, {"id":1408,"time":"2015-10-04T19:40:46.033442262+01:00","type":"Ping","data":null}
You can see that between 19:38:45 and 19:40:26 no FolderCompletion events were reported (and the upload speed was correctly reported in the web gui as being roughly 50kb/s all the time). In my personal notification app I actually query /rest/db/completion every two seconds during uploads, but I seem to get only cached values.
So my app, as well as web gui, reports correct upload speed, but annoyingly outdated number of MB which is still left to upload. (In web app it’s perhaps less visible because the upload is in percent not MB, so when the whole folder ./Sync is 1Gb then changing, say, 50Mb means that 95% is reported all the time, which in some sense is roughly correct :-), but you can manually check that querying /rest/db/completion during the process gives an outdated number).
I repeated the same with 50Mb set of data and the periods between foldercompletions were even longer (at least 5min).