Skip to content

Commit ce66096

Browse files
tjleingThomas Leing
authored andcommitted
Number of attributes being too high is not retryable (#2112)
* Number of attributes being too high is not retryable * Match iOS at not retrying bad request error -- covering multiple 400 errors * Fix lint * Fix lint * Update Kotlin SDK version Co-authored-by: Thomas Leing <[email protected]>
1 parent f719338 commit ce66096

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

aws-analytics-pinpoint/src/main/java/com/amplifyframework/analytics/pinpoint/EventRecorder.kt

+7-5
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ internal class EventRecorder(
5757
private val defaultMaxSubmissionAllowed = 3
5858
private val defaultMaxSubmissionSize = 1024 * 100
5959
private val serviceDefinedMaxEventsPerBatch: Int = 100
60+
private val badRequestCode = 400
6061
internal suspend fun recordEvent(pinpointEvent: PinpointEvent): Uri? {
6162
return withContext(coroutineDispatcher) {
6263
val result = runCatching {
@@ -178,7 +179,7 @@ internal class EventRecorder(
178179
logger.info("Successfully submitted event with eventId ${pinpointEvent.eventId}")
179180
eventIdToDelete.add(pinpointEvent)
180181
} else {
181-
if (isRetryableError(message)) {
182+
if (isRetryableError(message, pinpointEventResponse.statusCode)) {
182183
logger.error(
183184
"Failed to deliver event with ${pinpointEvent.eventId}," +
184185
" will be re-delivered later"
@@ -194,11 +195,12 @@ internal class EventRecorder(
194195
return eventIdToDelete
195196
}
196197

197-
private fun isRetryableError(responseCode: String): Boolean {
198+
private fun isRetryableError(message: String, code: Int): Boolean {
198199
return !(
199-
responseCode.equals("ValidationException", ignoreCase = true) ||
200-
responseCode.equals("SerializationException", ignoreCase = true) ||
201-
responseCode.equals("BadRequestException", ignoreCase = true)
200+
message.equals("ValidationException", ignoreCase = true) ||
201+
message.equals("SerializationException", ignoreCase = true) ||
202+
message.equals("BadRequestException", ignoreCase = true) ||
203+
code == badRequestCode
202204
)
203205
}
204206

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ ext {
6969
compileSdkVersion = 30
7070
minSdkVersion = 24
7171
targetSdkVersion = 30
72-
awsKotlinSdkVersion = '0.17.10-beta'
72+
awsKotlinSdkVersion = '0.17.12-beta'
7373
fragmentVersion = '1.3.1'
7474
navigationVersion = '2.3.4'
7575
dependency = [

0 commit comments

Comments
 (0)