@@ -290,11 +290,12 @@ export class DecisionService {
290290 this . getDecisionFromBucketer ( op , configObj , experiment , user ) ;
291291
292292 return decisionVariationValue . then ( ( variationResult ) : Value < OP , VariationResult > => {
293+ decideReasons . push ( ...variationResult . reasons ) ;
293294 if ( variationResult . error ) {
294295 return Value . of ( op , {
295296 error : true ,
296297 result : { } ,
297- reasons : [ ... decideReasons , ... variationResult . reasons ] ,
298+ reasons : decideReasons ,
298299 } ) ;
299300 }
300301
@@ -509,7 +510,7 @@ export class DecisionService {
509510 options : DecideOptionsMap = { }
510511 ) : DecisionResponse < string | null > {
511512 const shouldIgnoreUPS = options [ OptimizelyDecideOption . IGNORE_USER_PROFILE_SERVICE ] ;
512- let userProfileTracker : Maybe < UserProfileTracker > = shouldIgnoreUPS ? undefined
513+ const userProfileTracker : Maybe < UserProfileTracker > = shouldIgnoreUPS ? undefined
513514 : {
514515 isProfileUpdated : false ,
515516 userProfile : this . resolveExperimentBucketMap ( 'sync' , user . getUserId ( ) , user . getAttributes ( ) ) . get ( ) ,
@@ -938,7 +939,10 @@ export class DecisionService {
938939 decideOptions : DecideOptionsMap ,
939940 userProfileTracker ?: UserProfileTracker
940941 ) : Value < OP , DecisionResult > {
942+ const decideReasons : DecisionReason [ ] = [ ] ;
943+
941944 const forcedDecisionResponse = this . findValidatedForcedDecision ( configObj , user , feature . key ) ;
945+ decideReasons . push ( ...forcedDecisionResponse . reasons ) ;
942946
943947 if ( forcedDecisionResponse . result ) {
944948 return Value . of ( op , {
@@ -947,7 +951,7 @@ export class DecisionService {
947951 experiment : null ,
948952 decisionSource : DECISION_SOURCES . FEATURE_TEST ,
949953 } ,
950- reasons : forcedDecisionResponse . reasons ,
954+ reasons : decideReasons ,
951955 } ) ;
952956 }
953957
@@ -956,7 +960,7 @@ export class DecisionService {
956960 return Value . of ( op , experimentDecision ) ;
957961 }
958962
959- const decideReasons = experimentDecision . reasons ;
963+ decideReasons . push ( ... experimentDecision . reasons ) ;
960964
961965 const rolloutDecision = this . getVariationForRollout ( configObj , feature , user ) ;
962966 decideReasons . push ( ...rolloutDecision . reasons ) ;
0 commit comments