diff --git a/Agent/Analytics/NRMAAnalytics.mm b/Agent/Analytics/NRMAAnalytics.mm index 16fa2c4f..873fe2d7 100644 --- a/Agent/Analytics/NRMAAnalytics.mm +++ b/Agent/Analytics/NRMAAnalytics.mm @@ -605,7 +605,13 @@ - (BOOL) setSessionAttribute:(NSString*)name value:(id)value persistent:(BOOL)is [](bool) { return true;}); return _analyticsController->addNRAttribute(attribute); } else { - NRLOG_AGENT_ERROR(@"Session attribute \'value\' must be either an NSString* or NSNumber*"); + if (name == kNRMA_Attrib_userId && !value ) { + NRLOG_AGENT_VERBOSE(@"Successfully set userId to nil"); + return YES; + + }else { + NRLOG_AGENT_ERROR(@"Session attribute \'value\' must be either an NSString* or NSNumber*"); + } return NO; } } catch (std::exception& error) { diff --git a/Agent/Analytics/NRMASAM.mm b/Agent/Analytics/NRMASAM.mm index 800c0101..ccfd8d67 100644 --- a/Agent/Analytics/NRMASAM.mm +++ b/Agent/Analytics/NRMASAM.mm @@ -90,6 +90,10 @@ - (BOOL) checkAttribute:(NSString*)name value:(id)value { BOOL validAttribute = [attributeValidator nameValidator:name]; BOOL validValue = [attributeValidator valueValidator:value]; + if (name == kNRMA_Attrib_userId && !value ) { + NRLOG_AGENT_VERBOSE(@"Successfully set userId to nil"); + return YES; + } if (!(validAttribute && validValue)) { NRLOG_AGENT_VERBOSE(@"Failed to create attribute named %@", name); return NO;