[OW 166.1.7] passing empty array as requiredHighlights to capture API now errors

Issue Description:
To indicate what automatic highlights a user wants to capture, we use the feature names in an Array. If they desire no automatic highlights, this array will be empty. So long it worked fine, but now it happens that replays capturing can not be turned on at all if passing in an empty array.
The error is not highlights feature set from the call to overwolf.media.replays.turnOn.
The issue is that manually creating replays with that API then also fails.

Can you reproduce it (exact steps to reproduce):

  1. start game with auto highlight events
  2. paste this snippet into console
overwolf.media.replays.turnOn({
	settings: {
		video: {}
	},
	highlights: {
		enable: true,
		requiredHighlights: []
	}
}, (results)=>{
	console.warn(results)
})

overwolf.media.replays.onHighlightsCaptured.addListener((res)=>{
	console.warn('Highlight received:')
	console.warn(res)
})

Impact for my app: mid - not too many users have ALL events disabled
Do you currently have a workaround?
explicitely preventing setting up highlights recording if the required features are not set.
But this wasn’t needed in earlier releases!

Hi, and thanks for the feedback.

We will check the issue and we will update you here.

Thanks.

Hi,

Sorry about the delay. I want to clarify it: the issue is that when auto-highlights is on:

highlights: {
		enable: false,

You expect that everything will work even if you pass requiredHighlights: [] or not pass this param at all. Right? Because in your example, the highlights are on, but the requiredHighlights array is empty, and that is not valid.

Thanks

My main issue is that this changed without notice requiring obfuscated debugging on our part.
As said it worked before, then it became invalid breaking things.

@Colorfulstan, of course, if it changes without notice, that’s not good, but I want to make sure that we are on the same page here. So let’s focus on what needs to be fixed. Please tell me if I’m right:

  • When highlights: { enable: false}

  • When highlights: { enable: true}, you would expect it not to throw an error when the requiredHighlights[] is null or empty. Currently (changed recently), it throws an error.

  • When highlights: { enable: false} it doesn’t matter if we are sending or not the requiredHighlights[] .

Oh sorry, i misunderstood your intention there. I took it as “thats how it is now“.

Youre listed expectation is right.
The empty array should not throw an error but disable all automatic Highlights.
As opposed to passing in [“*”] which would enable automatic capture for all required features.

I don’t know right now what’s the behaviour when passing in null, so no comment on that.

If setting “highlights :false“ the passed in requiredHighlights value should not have any effects whatsoever

Hi,

We added the bug to our backlog. Currently, there is no ETA, but I will update you here once the fix is released.

Thanks.

An update: the fix will be released in version 0.181 (currently not public yet).