For example, if you have the engine in a different stream and specify an exact CL to use on the import path, you then update that import path to a later change with a higher CL number than that of the stream the path is contained within. Agent workspaces will not sync to that newer stream spec until horde is restarted, or a newer CL is created on the stream.
[Link Removed]
After some initial noodling with CC, this seems to be a legitimate bug, caused by us not resetting the MaxChange when a stream definition changes. We do reset the per steam MinChange:
// If the hash of any stream definition has changed, invalidate the replicated changes. bool modified = false; foreach (StreamInfo streamInfo in streamInfos) { IoHash prevHash; if (state.Streams.TryGetValue(streamInfo.StreamConfig.Id, out prevHash) && prevHash != streamInfo.Hash) { _logger.LogInformation("Invalidating cached commits for stream
due to definition change ({OldHash} -> {NewHash})", streamInfo.StreamConfig.Id, prevHash, streamInfo.Hash); state.MinChanges.Remove(streamInfo.StreamConfig.Id); modified = true; } }
but never MaxChange, and thus end up using a stale MaxChange value in{{ CachedCommitSource.FindAsync()}}
if (maxChange != null) { filter &= Builders<CachedCommitDoc>.Filter.Lte(x => x.Number, Math.Min(maxChange.Value, clusterState.MaxChange)); } else { filter &= Builders<CachedCommitDoc>.Filter.Lte(x => x.Number, clusterState.MaxChange); }
and thinking we have all the necessary changes in the cache.
I think it should be safe to reset that MaxChange value as well, since it's a one time cost per stream definition change and we cap it at 250 CLs and lazy backfill the rest. But wanted to open it up for discussion in case there's some reason or performance concern I'm overlooking!
I'm also a bit surprised we don't seem to see this internally, but I'm not sure if we use ChangeView regularly.
The licensee also already has a workaround of restarting the Horde server, so this isn't all that urgent
Work Arounds:
Create a dummy commit on the project stream
Or
Restart horde
It will then sync the agents to the correct stream view.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-357271 in the post.
| 0 |
| Component | UE - Foundation - Horde |
|---|---|
| Affects Versions | 5.7.1 |
| Created | Dec 9, 2025 |
|---|---|
| Updated | Dec 9, 2025 |