Skip to content

[SDK-342] - AuthRetry logic#987

Draft
Ayyanchira wants to merge 1 commit intomasterfrom
feature/auto-retry
Draft

[SDK-342] - AuthRetry logic#987
Ayyanchira wants to merge 1 commit intomasterfrom
feature/auto-retry

Conversation

@Ayyanchira
Copy link
Member

@Ayyanchira Ayyanchira commented Feb 8, 2026

🔹 Jira Ticket(s) if any

✏️ Description

Includes

  1. getRemoteConfiguration checking for the flag. And assuming false if no values exist. Also stores in sharedPreferences to load from it next time.
  2. isAutoRetryOnJWTFailure on IterableAPI which other classes with use. Not public.
  3. Introduced three states which Taskmanager can rely on. VALID, INVALID, UNKNOWN.
  4. Listener pub/sub added which will invoke onAuthTokenReady() on listner class. Adding array of AuthTokenReadyListener on Authmanager and its add and remove list methods.
  5. Right now authHandler null returns true hoping to bypass jwt. But JWT based request will fail if API needs jwt. This could pile up storage. But this seems like a valid scenario
  6. handleAuthTokenSucess sets authtoken to unknown when a new token is set. I hope it should be right approach. Because its new and unknown at this point.
  7. IterableConfig has final boolean autoRetryOnJwtFailure. Its not something I want customers to be able to configure. It should be removed before going to master. It should be internal only variable.
  8. IterableRequestTask - has some changes introduced due to the flow not falling under jwt failure. Response code coming has -1 was the root cause. Hence the change around responseCode >= 0 && responseCode < 400
  9. IterableRequestTask - Line 215 - Still not sure if RequestProcessor check should happen. It does make sense to have it as only offline stored request will be reprocessed. And this feature should only work for those requests going through offline Request processor
  10. IterableRequestTask - fromJSON method change is something I havent checked properly. I think its for unit testing the changes are done.
  11. IterableTaskRunner. Would like to see if I can remove the method - isJWTFailure(responseCode). May be its a small abstraction thats needed.
  12. Havent checked unit tests properly yet

Includes
1. getRemoteConfiguration checking for the flag. And assuming false if no values exist. Also stores in sharedPreferences to load from it next time.
2. isAutoRetryOnJWTFailure on `IterableAPI` which other classes with use. Not public.
3. Introduced three states which Taskmanager can rely on. VALID, INVALID, UNKNOWN.
4. Listener pub/sub added which will invoke onAuthTokenReady() on listner class. Adding array of AuthTokenReadyListener on Authmanager and its add and remove list methods.
5. Right now authHandler null returns true hoping to bypass jwt. But JWT based request will fail if API needs jwt. This could pile up storage. But this seems like a valid scenario
6. handleAuthTokenSucess sets authtoken to unknown when a new token is set. I hope it should be right approach. Because its new and unknown at this point.
7. `IterableConfig` has final boolean `autoRetryOnJwtFailure`. Its not something I want customers to be able to configure. It should be removed before going to master. It should be internal only variable.
8. IterableRequestTask - has some changes introduced due to the flow not falling under jwt failure. Response code coming has -1 was the root cause. Hence the change around responseCode >= 0 && responseCode < 400
9. `IterableRequestTask` - Line 215 - Still not sure if RequestProcessor check should happen. It does make sense to have it as only offline stored request will be reprocessed. And this feature should only work for those requests going through offline Request processor
10. `IterableRequestTask` - fromJSON method change is something I havent checked properly. I think its for unit testing the changes are done.
11. IterableTaskRunner. Would like to see if I can remove the method - isJWTFailure(responseCode). May be its a small abstraction thats needed.
12. Havent checked unit tests properly yet
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant