Problem with includes in stream configurations after updating Horde to 5.8.0

When we updated Horde from version 5.7.4 to 5.8.0, we found that the configuration for some streams stopped loading correctly, which resulted in them not displaying properly in the dashboard. Some tabs and templates were missing and the scheduler stopped working for them. Our configuration is set up so that we have multiple Perforce streams configured for a single project, and some tabs and templates that are shared across multiple streams are placed in separate configuration files, which are then included in the configuration files for each individual stream.

It looks something like this:

example.project.json

...
"streams":  
	[ 
		{ 
		 "id": "example-main", 
		 "path": "//Horde/Config/example-main.stream.json" 
 
		}, 
		{ 
		 "id": "example-release", 
		 "path": "//Horde/Config/example-release.stream.json" 
		}, 
	... 
	], 
...

example-main.stream.json

...
"include":  
	[ 
 
		{ 
			"path": "//Horde/Config/example.common.json" 
		}, 
		... 
	],
...

example-release.stream.json

...
"include":  
	[ 
		{ 
			"path": "//Horde/Config/example.common.json" 
		}, 
 
		... 
	], 
...

In this scenario everything defined (tabs, templates etc.) in the example.common.json will work only for the example-main stream and won’t work for the example-release stream.

It turned out that the problem occurs when multiple streams include a configuration file with the same name. When we changed our configuration so that the streams no longer included configuration files with the same name, everything started working, but unfortunately we ended up with a terrible mess in our configuration due to the duplication of configuration fragments across streams.

This surprised us because before the update (in version 5.7.4), this configuration didn’t cause any problems. We also didn’t find any errors or even warnings in the server logs. Therefore, we’d like to ask whether this behavior is caused by a bug or is intended—though that would mean that including configuration files in the stream configuration no longer makes sense.

[Attachment Removed]

Thank you for raising this, and apologies for the inconvenience caused by this.

I’ve been able to reproduce the regression’s behavior in 5.8.0 and have submitted a bug ticket to the Horde team for further investigation (UCS-21719).

[Attachment Removed]

I’ve asked the team to confirm, but as this is now in a separate project for tracking, it might not be possible.

I’ll follow up next week with the info from the team.

[Attachment Removed]

Hey, for reference we also had the same issue (our setup has a lot of generic .stream.json files that all streams include) and ended up commenting out `//if (!context.InIncludeScope)` in ConfigNode.cs which essentially disables the diamond dedupe logic (or at least it does so for sibling configs) and we’re just careful to not introduce diamonds on our own

It was with https://github.com/EpicGames/UnrealEngine/commit/223679f39b6cb16bff387b4737d74f070c8cb35a that we started getting the issue and from what we can tell https://github.com/EpicGames/UnrealEngine/commit/5a87ae4039c9cacba5014349a8242179a719470e was supposed to fix the issue, but it didn’t improve it in our case. We’re building Horde from latest in ue6-main from github

[Attachment Removed]

Is it possible to track the issue somehow on our side? The public bugtracker seems to not expose the ticket (or maybe there is some other page we don’t know about)

[Attachment Removed]