Identify Users

Users consist of a few critical pieces of information that construct a unique identity in Sentry. Each of these is optional, but one must be present for the Sentry SDK to capture the user:


Your internal identifier for the user.


The username. Typically used as a better label than the internal id.


An alternative, or addition, to the username. Sentry is aware of email addresses and can display things such as Gravatars and unlock messaging capabilities.


The user's IP address. If the user is unauthenticated, Sentry uses the IP address as a unique identifier for the user. Serverside SDKs that instrument incoming requests will attempt to pull the IP address from the HTTP request data (request.env.REMOTE_ADDR field in JSON), if available. That might require SendDefaultPii set to `true` in the SDK options.

If the user's ip_address is set to "{{auto}}", Sentry will infer the IP address from the connection between your app and Sentry's server.

If the field is omitted, the default value is null. However, due to backwards compatibility concerns, certain platforms (in particular JavaScript) have a different default value for "{{auto}}". SDKs and other clients should not rely on this behavior and should set IP addresses or "{{auto}}" explicitly.

To opt out of storing users' IP addresses in your event data, you can go to your

projectRepresents your service in Sentry and allows you to scope events to a distinct application.
settings, click on "Security & Privacy", and enable "Prevent Storing of IP Addresses" or use Sentry's server-side data scrubbing to remove $user.ip_address. Adding such a rule ultimately overrules any other logic.

Additionally, you can provide arbitrary key/value pairs beyond the reserved names, and the Sentry SDK will store those with the user.

To identify the user:

USentrySubsystem* SentrySubsystem = ...;

TMap<FString, FString> AdditionalData;
AdditionalData.Add("DogName", "Spot");

USentryUser* User = NewObject<USentryUser>();


The same result can be achieved by calling corresponding function in blueprint:

Set user

Alternatively, this configuration can be provided to the crash reporter during initialization.

You can also clear the currently set user:

USentrySubsystem* SentrySubsystem = ...;


Or in blueprint:

Unset user

In configurations with a crash reporter, create a new __sentry config object without the user field. Then, call FGenericCrashContext::SetGameData from the initialization function with the new JSON data. You have to provide all other fields again, as the call overrides the previously registered data.

Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) to suggesting an update ("yeah, this would be better").
Suggest an edit to this page   |  Contribute to Docs   |  

Report a Problem

🎉 Thank you for your feedback! 🙌
Report a problem