diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Bindings b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Bindings
index 850277605ab43a31f87949d8423fc9016bf07dad..ba3ec502a4b2d12cd7825c3c307d575bfcc0081c 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Headers/Bindings.objc.h
index 3a54344ef4372b69b8417d2effb690824356e405..89b4d43e2523f200f46035cc871270df2f4d4f75 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Headers/Bindings.objc.h
@@ -2053,6 +2053,9 @@ registered facts into store.
 Parameters:
  - e2eID - e2e object ID in the tracker
  - follower - network follower func wrapped in UdNetworkStatus
+ - username - The username this user registered with initially. This should
+              not be nullable, and be JSON marshalled as retrieved from
+              UserDiscovery.GetFacts().
  - emailFactJson - nullable JSON marshalled email [fact.Fact]
  - phoneFactJson - nullable JSON marshalled phone [fact.Fact]
  - cert - the TLS certificate for the UD server this call will connect with.
@@ -2066,7 +2069,7 @@ Parameters:
    may use the UD server run by the xx network team by using
    E2e.GetUdAddressFromNdf.
  */
-FOUNDATION_EXPORT BindingsUserDiscovery* _Nullable BindingsNewUdManagerFromBackup(long e2eID, id<BindingsUdNetworkStatus> _Nullable follower, NSData* _Nullable emailFactJson, NSData* _Nullable phoneFactJson, NSData* _Nullable cert, NSData* _Nullable contactFile, NSString* _Nullable address, NSError* _Nullable* _Nullable error);
+FOUNDATION_EXPORT BindingsUserDiscovery* _Nullable BindingsNewUdManagerFromBackup(long e2eID, id<BindingsUdNetworkStatus> _Nullable follower, NSData* _Nullable usernameJson, NSData* _Nullable emailFactJson, NSData* _Nullable phoneFactJson, NSData* _Nullable cert, NSData* _Nullable contactFile, NSString* _Nullable address, NSError* _Nullable* _Nullable error);
 
 /**
  * RegisterForNotifications allows a client to register for push notifications.
diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Bindings b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Bindings
index 850277605ab43a31f87949d8423fc9016bf07dad..ba3ec502a4b2d12cd7825c3c307d575bfcc0081c 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Headers/Bindings.objc.h
index 3a54344ef4372b69b8417d2effb690824356e405..89b4d43e2523f200f46035cc871270df2f4d4f75 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Headers/Bindings.objc.h
@@ -2053,6 +2053,9 @@ registered facts into store.
 Parameters:
  - e2eID - e2e object ID in the tracker
  - follower - network follower func wrapped in UdNetworkStatus
+ - username - The username this user registered with initially. This should
+              not be nullable, and be JSON marshalled as retrieved from
+              UserDiscovery.GetFacts().
  - emailFactJson - nullable JSON marshalled email [fact.Fact]
  - phoneFactJson - nullable JSON marshalled phone [fact.Fact]
  - cert - the TLS certificate for the UD server this call will connect with.
@@ -2066,7 +2069,7 @@ Parameters:
    may use the UD server run by the xx network team by using
    E2e.GetUdAddressFromNdf.
  */
-FOUNDATION_EXPORT BindingsUserDiscovery* _Nullable BindingsNewUdManagerFromBackup(long e2eID, id<BindingsUdNetworkStatus> _Nullable follower, NSData* _Nullable emailFactJson, NSData* _Nullable phoneFactJson, NSData* _Nullable cert, NSData* _Nullable contactFile, NSString* _Nullable address, NSError* _Nullable* _Nullable error);
+FOUNDATION_EXPORT BindingsUserDiscovery* _Nullable BindingsNewUdManagerFromBackup(long e2eID, id<BindingsUdNetworkStatus> _Nullable follower, NSData* _Nullable usernameJson, NSData* _Nullable emailFactJson, NSData* _Nullable phoneFactJson, NSData* _Nullable cert, NSData* _Nullable contactFile, NSString* _Nullable address, NSError* _Nullable* _Nullable error);
 
 /**
  * RegisterForNotifications allows a client to register for push notifications.
diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Bindings b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Bindings
index 850277605ab43a31f87949d8423fc9016bf07dad..ba3ec502a4b2d12cd7825c3c307d575bfcc0081c 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Headers/Bindings.objc.h
index 3a54344ef4372b69b8417d2effb690824356e405..89b4d43e2523f200f46035cc871270df2f4d4f75 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Headers/Bindings.objc.h
@@ -2053,6 +2053,9 @@ registered facts into store.
 Parameters:
  - e2eID - e2e object ID in the tracker
  - follower - network follower func wrapped in UdNetworkStatus
+ - username - The username this user registered with initially. This should
+              not be nullable, and be JSON marshalled as retrieved from
+              UserDiscovery.GetFacts().
  - emailFactJson - nullable JSON marshalled email [fact.Fact]
  - phoneFactJson - nullable JSON marshalled phone [fact.Fact]
  - cert - the TLS certificate for the UD server this call will connect with.
@@ -2066,7 +2069,7 @@ Parameters:
    may use the UD server run by the xx network team by using
    E2e.GetUdAddressFromNdf.
  */
-FOUNDATION_EXPORT BindingsUserDiscovery* _Nullable BindingsNewUdManagerFromBackup(long e2eID, id<BindingsUdNetworkStatus> _Nullable follower, NSData* _Nullable emailFactJson, NSData* _Nullable phoneFactJson, NSData* _Nullable cert, NSData* _Nullable contactFile, NSString* _Nullable address, NSError* _Nullable* _Nullable error);
+FOUNDATION_EXPORT BindingsUserDiscovery* _Nullable BindingsNewUdManagerFromBackup(long e2eID, id<BindingsUdNetworkStatus> _Nullable follower, NSData* _Nullable usernameJson, NSData* _Nullable emailFactJson, NSData* _Nullable phoneFactJson, NSData* _Nullable cert, NSData* _Nullable contactFile, NSString* _Nullable address, NSError* _Nullable* _Nullable error);
 
 /**
  * RegisterForNotifications allows a client to register for push notifications.
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Bindings b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Bindings
index 9406c672a30ab528cfd9f0d84d925fb7b6426195..70a17ca694759b66d4f5e925345637ebdd935528 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Headers/Bindings.objc.h
index 3a54344ef4372b69b8417d2effb690824356e405..89b4d43e2523f200f46035cc871270df2f4d4f75 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Headers/Bindings.objc.h
@@ -2053,6 +2053,9 @@ registered facts into store.
 Parameters:
  - e2eID - e2e object ID in the tracker
  - follower - network follower func wrapped in UdNetworkStatus
+ - username - The username this user registered with initially. This should
+              not be nullable, and be JSON marshalled as retrieved from
+              UserDiscovery.GetFacts().
  - emailFactJson - nullable JSON marshalled email [fact.Fact]
  - phoneFactJson - nullable JSON marshalled phone [fact.Fact]
  - cert - the TLS certificate for the UD server this call will connect with.
@@ -2066,7 +2069,7 @@ Parameters:
    may use the UD server run by the xx network team by using
    E2e.GetUdAddressFromNdf.
  */
-FOUNDATION_EXPORT BindingsUserDiscovery* _Nullable BindingsNewUdManagerFromBackup(long e2eID, id<BindingsUdNetworkStatus> _Nullable follower, NSData* _Nullable emailFactJson, NSData* _Nullable phoneFactJson, NSData* _Nullable cert, NSData* _Nullable contactFile, NSString* _Nullable address, NSError* _Nullable* _Nullable error);
+FOUNDATION_EXPORT BindingsUserDiscovery* _Nullable BindingsNewUdManagerFromBackup(long e2eID, id<BindingsUdNetworkStatus> _Nullable follower, NSData* _Nullable usernameJson, NSData* _Nullable emailFactJson, NSData* _Nullable phoneFactJson, NSData* _Nullable cert, NSData* _Nullable contactFile, NSString* _Nullable address, NSError* _Nullable* _Nullable error);
 
 /**
  * RegisterForNotifications allows a client to register for push notifications.
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Bindings b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Bindings
index 9406c672a30ab528cfd9f0d84d925fb7b6426195..70a17ca694759b66d4f5e925345637ebdd935528 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Headers/Bindings.objc.h
index 3a54344ef4372b69b8417d2effb690824356e405..89b4d43e2523f200f46035cc871270df2f4d4f75 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Headers/Bindings.objc.h
@@ -2053,6 +2053,9 @@ registered facts into store.
 Parameters:
  - e2eID - e2e object ID in the tracker
  - follower - network follower func wrapped in UdNetworkStatus
+ - username - The username this user registered with initially. This should
+              not be nullable, and be JSON marshalled as retrieved from
+              UserDiscovery.GetFacts().
  - emailFactJson - nullable JSON marshalled email [fact.Fact]
  - phoneFactJson - nullable JSON marshalled phone [fact.Fact]
  - cert - the TLS certificate for the UD server this call will connect with.
@@ -2066,7 +2069,7 @@ Parameters:
    may use the UD server run by the xx network team by using
    E2e.GetUdAddressFromNdf.
  */
-FOUNDATION_EXPORT BindingsUserDiscovery* _Nullable BindingsNewUdManagerFromBackup(long e2eID, id<BindingsUdNetworkStatus> _Nullable follower, NSData* _Nullable emailFactJson, NSData* _Nullable phoneFactJson, NSData* _Nullable cert, NSData* _Nullable contactFile, NSString* _Nullable address, NSError* _Nullable* _Nullable error);
+FOUNDATION_EXPORT BindingsUserDiscovery* _Nullable BindingsNewUdManagerFromBackup(long e2eID, id<BindingsUdNetworkStatus> _Nullable follower, NSData* _Nullable usernameJson, NSData* _Nullable emailFactJson, NSData* _Nullable phoneFactJson, NSData* _Nullable cert, NSData* _Nullable contactFile, NSString* _Nullable address, NSError* _Nullable* _Nullable error);
 
 /**
  * RegisterForNotifications allows a client to register for push notifications.
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Bindings b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Bindings
index 9406c672a30ab528cfd9f0d84d925fb7b6426195..70a17ca694759b66d4f5e925345637ebdd935528 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Headers/Bindings.objc.h
index 3a54344ef4372b69b8417d2effb690824356e405..89b4d43e2523f200f46035cc871270df2f4d4f75 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Headers/Bindings.objc.h
@@ -2053,6 +2053,9 @@ registered facts into store.
 Parameters:
  - e2eID - e2e object ID in the tracker
  - follower - network follower func wrapped in UdNetworkStatus
+ - username - The username this user registered with initially. This should
+              not be nullable, and be JSON marshalled as retrieved from
+              UserDiscovery.GetFacts().
  - emailFactJson - nullable JSON marshalled email [fact.Fact]
  - phoneFactJson - nullable JSON marshalled phone [fact.Fact]
  - cert - the TLS certificate for the UD server this call will connect with.
@@ -2066,7 +2069,7 @@ Parameters:
    may use the UD server run by the xx network team by using
    E2e.GetUdAddressFromNdf.
  */
-FOUNDATION_EXPORT BindingsUserDiscovery* _Nullable BindingsNewUdManagerFromBackup(long e2eID, id<BindingsUdNetworkStatus> _Nullable follower, NSData* _Nullable emailFactJson, NSData* _Nullable phoneFactJson, NSData* _Nullable cert, NSData* _Nullable contactFile, NSString* _Nullable address, NSError* _Nullable* _Nullable error);
+FOUNDATION_EXPORT BindingsUserDiscovery* _Nullable BindingsNewUdManagerFromBackup(long e2eID, id<BindingsUdNetworkStatus> _Nullable follower, NSData* _Nullable usernameJson, NSData* _Nullable emailFactJson, NSData* _Nullable phoneFactJson, NSData* _Nullable cert, NSData* _Nullable contactFile, NSString* _Nullable address, NSError* _Nullable* _Nullable error);
 
 /**
  * RegisterForNotifications allows a client to register for push notifications.
diff --git a/Sources/XXClient/Functors/NewUdManagerFromBackup.swift b/Sources/XXClient/Functors/NewUdManagerFromBackup.swift
index e3f403e730f683e0f1bd79b343c7decbcf7fa0b2..454cc6aaa1b732ce170cbe51f85f9211d4726cb3 100644
--- a/Sources/XXClient/Functors/NewUdManagerFromBackup.swift
+++ b/Sources/XXClient/Functors/NewUdManagerFromBackup.swift
@@ -5,6 +5,7 @@ public struct NewUdManagerFromBackup {
   public struct Params: Equatable {
     public init(
       e2eId: Int,
+      username: Fact,
       email: Fact?,
       phone: Fact?,
       cert: Data,
@@ -12,6 +13,7 @@ public struct NewUdManagerFromBackup {
       address: String
     ) {
       self.e2eId = e2eId
+      self.username = username
       self.email = email
       self.phone = phone
       self.cert = cert
@@ -20,6 +22,7 @@ public struct NewUdManagerFromBackup {
     }
 
     public var e2eId: Int
+    public var username: Fact
     public var email: Fact?
     public var phone: Fact?
     public var cert: Data
@@ -43,6 +46,7 @@ extension NewUdManagerFromBackup {
     let bindingsUD = BindingsNewUdManagerFromBackup(
       params.e2eId,
       follower.makeBindingsUdNetworkStatus(),
+      try params.username.encode(),
       try params.email?.encode(),
       try params.phone?.encode(),
       params.cert,