Skip to content

Commit a9dfc09

Browse files
committed
only consider retrying on 404, don't include 410
If the backend returns 410 then it indicates it knows it existed at one point and it is deleted now. Where a 404 is more abstract.
1 parent 1c2bf82 commit a9dfc09

File tree

4 files changed

+13
-7
lines changed

4 files changed

+13
-7
lines changed

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/executors/IdentityOperationExecutor.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ internal class IdentityOperationExecutor(
6969
NetworkUtils.ResponseStatusType.UNAUTHORIZED ->
7070
ExecutionResponse(ExecutionResult.FAIL_UNAUTHORIZED)
7171
NetworkUtils.ResponseStatusType.MISSING -> {
72-
if (_newRecordState.isInMissingRetryWindow(lastOperation.onesignalId)) {
72+
if (ex.statusCode == 404 && _newRecordState.isInMissingRetryWindow(lastOperation.onesignalId)) {
7373
return ExecutionResponse(ExecutionResult.FAIL_RETRY)
7474
}
7575

@@ -109,7 +109,7 @@ internal class IdentityOperationExecutor(
109109
NetworkUtils.ResponseStatusType.UNAUTHORIZED ->
110110
ExecutionResponse(ExecutionResult.FAIL_UNAUTHORIZED)
111111
NetworkUtils.ResponseStatusType.MISSING -> {
112-
return if (_newRecordState.isInMissingRetryWindow(lastOperation.onesignalId)) {
112+
return if (ex.statusCode == 404 && _newRecordState.isInMissingRetryWindow(lastOperation.onesignalId)) {
113113
ExecutionResponse(ExecutionResult.FAIL_RETRY)
114114
} else {
115115
// This means either the User or the Alias was already

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/executors/RefreshUserOperationExecutor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ internal class RefreshUserOperationExecutor(
137137
NetworkUtils.ResponseStatusType.UNAUTHORIZED ->
138138
ExecutionResponse(ExecutionResult.FAIL_UNAUTHORIZED)
139139
NetworkUtils.ResponseStatusType.MISSING -> {
140-
if (_newRecordState.isInMissingRetryWindow(op.onesignalId)) {
140+
if (ex.statusCode == 404 && _newRecordState.isInMissingRetryWindow(op.onesignalId)) {
141141
return ExecutionResponse(ExecutionResult.FAIL_RETRY)
142142
}
143143
val operations = _buildUserService.getRebuildOperationsIfCurrentUser(op.appId, op.onesignalId)

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/executors/SubscriptionOperationExecutor.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ internal class SubscriptionOperationExecutor(
138138
NetworkUtils.ResponseStatusType.UNAUTHORIZED ->
139139
ExecutionResponse(ExecutionResult.FAIL_UNAUTHORIZED)
140140
NetworkUtils.ResponseStatusType.MISSING -> {
141-
if (_newRecordState.isInMissingRetryWindow(createOperation.onesignalId)) {
141+
if (ex.statusCode == 404 && _newRecordState.isInMissingRetryWindow(createOperation.onesignalId)) {
142142
return ExecutionResponse(ExecutionResult.FAIL_RETRY)
143143
}
144144
val operations = _buildUserService.getRebuildOperationsIfCurrentUser(createOperation.appId, createOperation.onesignalId)
@@ -183,7 +183,8 @@ internal class SubscriptionOperationExecutor(
183183
NetworkUtils.ResponseStatusType.RETRYABLE ->
184184
ExecutionResponse(ExecutionResult.FAIL_RETRY)
185185
NetworkUtils.ResponseStatusType.MISSING -> {
186-
if (listOf(
186+
if (ex.statusCode == 404 &&
187+
listOf(
187188
lastOperation.onesignalId,
188189
lastOperation.subscriptionId,
189190
).any { _newRecordState.isInMissingRetryWindow(it) }
@@ -262,7 +263,12 @@ internal class SubscriptionOperationExecutor(
262263

263264
return when (responseType) {
264265
NetworkUtils.ResponseStatusType.MISSING -> {
265-
if (listOf(op.onesignalId, op.subscriptionId).any { _newRecordState.isInMissingRetryWindow(it) }) {
266+
if (ex.statusCode == 404 &&
267+
listOf(
268+
op.onesignalId,
269+
op.subscriptionId,
270+
).any { _newRecordState.isInMissingRetryWindow(it) }
271+
) {
266272
ExecutionResponse(ExecutionResult.FAIL_RETRY)
267273
} else {
268274
// if the subscription is missing, we are good!

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/executors/UpdateUserOperationExecutor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ internal class UpdateUserOperationExecutor(
165165
NetworkUtils.ResponseStatusType.UNAUTHORIZED ->
166166
ExecutionResponse(ExecutionResult.FAIL_UNAUTHORIZED)
167167
NetworkUtils.ResponseStatusType.MISSING -> {
168-
if (_newRecordState.isInMissingRetryWindow(onesignalId)) {
168+
if (ex.statusCode == 404 && _newRecordState.isInMissingRetryWindow(onesignalId)) {
169169
return ExecutionResponse(ExecutionResult.FAIL_RETRY)
170170
}
171171
val operations = _buildUserService.getRebuildOperationsIfCurrentUser(appId, onesignalId)

0 commit comments

Comments
 (0)