@@ -619,28 +619,41 @@ protected void registerDeviceToken(@Nullable String email, @Nullable String user
619619 IterableLogger .e (TAG , "registerDeviceToken: applicationName is null, check that pushIntegrationName is set in IterableConfig" );
620620 }
621621
622- // Create a wrapper success handler that tracks consent before calling the original success handler
623622 IterableHelper .SuccessHandler wrappedSuccessHandler = getSuccessHandler ();
623+ IterableHelper .FailureHandler wrappedFailureHandler = getFailureHandler ();
624624
625- apiClient .registerDeviceToken (email , userId , authToken , applicationName , deviceToken , dataFields , deviceAttributes , wrappedSuccessHandler , _setUserFailureCallbackHandler );
625+ apiClient .registerDeviceToken (email , userId , authToken , applicationName , deviceToken , dataFields , deviceAttributes , wrappedSuccessHandler , wrappedFailureHandler );
626626 }
627627
628628 private IterableHelper .SuccessHandler getSuccessHandler () {
629629 IterableHelper .SuccessHandler wrappedSuccessHandler = null ;
630630 if (_setUserSuccessCallbackHandler != null || (config .enableUnknownUserActivation && getVisitorUsageTracked () && config .identityResolution .getReplayOnVisitorToKnown ())) {
631631 final IterableHelper .SuccessHandler originalSuccessHandler = _setUserSuccessCallbackHandler ;
632632 wrappedSuccessHandler = data -> {
633- // Track consent now that user has been created/updated via device registration
634633 trackConsentOnDeviceRegistration ();
635634
636- // Call the original success handler if it exists
637635 if (originalSuccessHandler != null ) {
638636 originalSuccessHandler .onSuccess (data );
639637 }
640638 };
641639 }
642640 return wrappedSuccessHandler ;
643641 }
642+
643+ private IterableHelper .FailureHandler getFailureHandler () {
644+ IterableHelper .FailureHandler wrappedFailureHandler = null ;
645+ if (_setUserFailureCallbackHandler != null || (config .enableUnknownUserActivation && getVisitorUsageTracked () && config .identityResolution .getReplayOnVisitorToKnown ())) {
646+ final IterableHelper .FailureHandler originalFailureHandler = _setUserFailureCallbackHandler ;
647+ wrappedFailureHandler = (reason , data ) -> {
648+ trackConsentOnDeviceRegistration ();
649+
650+ if (originalFailureHandler != null ) {
651+ originalFailureHandler .onFailure (reason , data );
652+ }
653+ };
654+ }
655+ return wrappedFailureHandler ;
656+ }
644657//endregion
645658
646659//region SDK initialization
0 commit comments