UnrealGameSync: sync operation does not update all files

Hi all,
on our project we faced with situation when UGS sync shows that it has done sync successfully, but it is not.

Steps:

  1. Click on CL and choose Sync.
  2. Wait until completion.
  3. Click on same CL and choose Sync (Just Content).
  4. Observe that some amount of files are syncing again, for example 5000 of entries.
  5. Repeat step 3 and check that step 4 is also works.

If you see such behavior and sync using perforce to the same CL, perforce will actually sync these files, so issue will be gone for some time.

Checked diagnostic files, i.e. logs, settings, etc. No issues there.
Tried to debug UGS and it seems like everything is fine there - no errors, no exceptions. But behavior with fake sync is persist.

I see that UGS starts preview command first, but second one is usual sync, and anyway it doesn’t really sync files. And that is not for all files, but I can’t find the pattern. There are different files, from different folders and even different operations: Update, Add, Delete.

Also, checked troubleshooting pages and wasn’t able to find anything related. The only thing which may be related is path length, but we don’t have files with long path.

Any ideas are appreciated.
Thanks.

Did this issue ever get resolved? We are running into the same issue internally.

Unfortunately no. I wasn’t able to find 100% working solution. Best solution which I’ve found is that:

  • Open UGS
  • Click on Options → Application Settings
  • Click on Advanced button
  • Change “Max commands per batch” to 50 (this may be changed to even lower value)

Currently on my machine it is working good with precompiled binaries (no issues so far), but for few my colleagues who building binaries using UGS it is still has missing files.

We were also hitting this. Tracked it down to wildcard syncs not working reliably. Some settings in advanced settings may cause it to not use them in some circumstances, especially the Max Size Per Batch setting (the smaller you set it the better - entering 2048 will actually save it as a negative number and will work reliably), but there’s not an exposed setting to just disable them entirely. However, you can change this one line in WorkspaceUpdate.cs to false and it will never use this optimization.

								leaf.CanUseWildcard = false;

This thread was helpful. Got me experimenting with settings which led me to this.

3 Likes