How do you use Sentry?
Sentry Saas (sentry.io)
Version
master
Steps to Reproduce
When using set_user() in a way that some dict-values are None, these values are getting and showing up as non-null values in the product
set_user({"email": None, "username": None})
In _apply_user_attributes_to_telemetry these values are applied to the span and in serialize_attribute() they are stringified, as it does not recognize None as a special case but just stringifies it.
Expected Result
Either the values should be dropped (as in: not set in the span) or be left but null.
Also set_user() has the following signature:
def set_user(self, value: "Optional[Dict[str, Any]]") -> None:
This would indicate to me that None values are allowed, but serialize_attribute does not allow for None
Actual Result

How do you use Sentry?
Sentry Saas (sentry.io)
Version
master
Steps to Reproduce
When using
set_user()in a way that some dict-values areNone, these values are getting and showing up as non-null values in the productIn
_apply_user_attributes_to_telemetrythese values are applied to the span and inserialize_attribute()they are stringified, as it does not recognizeNoneas a special case but just stringifies it.Expected Result
Either the values should be dropped (as in: not set in the span) or be left but
null.Also
set_user()has the following signature:This would indicate to me that
Nonevalues are allowed, butserialize_attributedoes not allow forNoneActual Result