Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check for treatment and guard against malformed JSON in featured extension experiment #178180

Merged
merged 1 commit into from
Mar 24, 2023

Conversation

bhavyaus
Copy link
Collaborator

@bhavyaus bhavyaus commented Mar 23, 2023

Fixes: #177945
See comment here: #178164 (review)

this.title = extensionListTitle ?? localize('gettingStarted.featuredTitle', 'Featured');

if (this.treatment) {
if (this.treatment?.extensions && Array.isArray(this.treatment.extensions)) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this might regress the fix that you introduced for #177945 because this.treatment.extensions isn't guaranteed to be an array (depending on what comes back from the experimentation service)?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Array.isArray takes care of the check for extensions being an array before the for loop iterates on it. Tested it with sample strings.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just for my understanding, do you know what the exp service was returning when #177945 repros? (i.e. was it just an empty response which could be safely skipped, or was it returning extension info in a different shape like an object rather than an array)? I'm mainly wondering if the Array.isArray check would cause us to not feature extensions if the exp service happens to return objects (which Object.values would still be able to extract).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was returning an empty response '{}' for a very small control group (2%). I don't believe my first fix handled it in its entirety.
This can be safely skipped and it will not cause us to not feature extensions.

@bhavyaus bhavyaus merged commit b962dd0 into main Mar 24, 2023
@bhavyaus bhavyaus deleted the dev/bhavyau/featured-extension-error branch March 24, 2023 00:14
@github-actions github-actions bot locked and limited conversation to collaborators May 8, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

'this.b.extensions is not iterable' on opening welcome page
4 participants