Verify affected tenants
Use the Auth0 Dashboard to confirm whether a tenant has been flagged as having non-compliant user profiles and requires migration.- Navigate to Auth0 Dashboard > Tenant Settings > Advanced.
- Scroll down to the Migrations section.
- Look for the Uncapped User Profile Data toggle:
- Toggle is on: Your tenant is unmigrated and has access to user profiles without explicit size limits. You must complete migration before the March 4, 2027 deadline.
- Toggle is absent or off: Your tenant no longer observes the deprecated behavior, and no further action is required.
Functional differences in unmigrated tenants
In a tenant where the Uncapped User Profile Data migration toggle is enabled, the service does not raise an error during operations that depend on user creation or updates, even if the user profile exceeds both the 10KB limit and the extended size allowance. The extended size allowance remains applicable even after a tenant migrates to the new behavior.Identify oversized user profiles
Review the associateddepnote tenant logs to identify attempts to create or update user profiles above the new profile size limit. These tenant logs trigger only when there is associated user activity that requires a profile update, such as a new login attempt. Consequently, these logs won’t help identify existing user profiles that are already above the limit if the respective users remain inactive.
Query Uncapped User Profile Data deprecation logs
Use the following query to search for tenant logs specific to this deprecation. To learn more about tenant log querying, read Log Search Query Syntax.user_id and projected_size_bytes fields in the details object to identify oversized user profiles and their sizes. The structure of the details object, as well as additional contextual information, may vary slightly depending on the underlying operation that triggered the tenant log.
Below is a sample log entry triggered by an end user with an oversized profile who completed a login via Universal Login. Some of the default tenant log fields were omitted from the sample for brevity.
Once a tenant transitions to the new behavior, the deprecation-specific tenant logs no longer apply. However, you can continue to monitor new occurrences of user profiles exceeding the limit using the
user_profile_size_exceeded tenant log type.Ad hoc calculation of user profile size
Limit checks performed by the service are based on the internal representation of the serialized data associated with a user profile. Because this serialization process includes operational fields that aren’t surfaced externally, ad hoc calculations based solely on externally facing user profile data may differ from the checks performed by the service. Still, ad hoc calculations based on the JSON representation of the user profile returned by the Get a User endpoint can be useful for determining an approximate value and for comparing user profiles with different attribute sets. This works because oversized profiles that already exist in the system continue to be returned without limitation via retrieval (GET) endpoints and bulk user export jobs, regardless of whether they exceed the limit.
Address the root cause of oversized user profiles
The exact steps needed to reduce the size of a flagged user profile can vary significantly, but generally fall into one of the following scenarios:- Remove data not used for authentication and authorization from user profiles.
- Move data required for authentication and authorization from the user profile to other data stores.
Prevent storage of unneeded attributes from external identity providers
To prevent the storage of unnecessary user attributes from external identity providers, use the Auth0 User Attributes Deny List. This feature lets you explicitly block specific attributes from being persisted to the user profile, keeping profiles lean and avoiding unnecessary data bloat. Attributes added to the deny list remain accessible in post-login extensibility, so you can use that information, or store it in an external data store, without impacting the user profile size.Use extensibility to query additional business data dynamically
For unbounded data structures, such as dynamic arrays, or other data with a large size footprint, avoid storing these values directly inuser_metadata or app_metadata. Instead, maintain this data in your own external data stores and fetch it dynamically during authentication using a Post-Login Action:
- Use a Post-Login Action to execute custom code immediately after a user authenticates.
- Within your Action, perform a secure network request (for example, using
axiosor nativefetch) to your own backend API or database to retrieve the required attributes. - Use the retrieved data to set custom claims in issued tokens, or to inform authorization logic, without persisting the raw data to the user profile.
Use Enterprise Groups to sync group information
Instead of storing user group information from external identity providers directly in the user profile, use Enterprise Groups, available via SCIM endpoints, to manage group information as a separate entity. You can then use the groups provisioned this way in multiple ways, either alongside Auth0 Organizations or independently in post-login Actions for custom access control and authorization decisions. For example, you can use this approach to transition away from storing Entra ID (Azure AD) user group information directly in user profiles as part of existing Azure AD connections.Opt out to complete migration
Once you have addressed the source of your oversized user profiles and no longer depend on the deprecated behavior, opt out of it as early as possible. Doing so lets you choose exactly when your tenant adopts the new behavior, providing more control over your migration.- Navigate to Auth0 Dashboard > Tenant Settings > Advanced.
- Under Migrations, toggle off Uncapped User Profile Data.
- Administrative operations via the Management API
- User creation (
POST /api/v2/users). - User update (
PATCH /api/v2/users/{id}). - Bulk user import (
POST /api/v2/jobs/users-imports).
- User creation (
- Authentication-related operations
- User logins via custom database connections, because custom database scripts return excessive attributes.
- User logins via external identity providers, such as social or enterprise connections, because the identity provider returns excessive attributes.
- User logins via any connection type, if the profile is already oversized, due to the need to update operational attributes as part of a standard login.
- Updating multi-factor authentication (MFA) factors via Universal Login, the MFA API, or the My Account API.
- Metadata updates via the extensibility
apiobject, for example, in a post-login Action.
- User provisioning operations
- User resource modification requests via SCIM.
- Directory Sync for Google Workspace connections.