awslabs / awslabs/aws-mobile-appsync-sdk-android
Cognito Userpools failed to get session
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 106
- Forks
- 56
- PR merge metrics
- No merged PRs in 30d
Description
Describe the bug
Friday opened the app and it runned in background thread, when Monday I make the app in front, the error occuces.
Environment(please complete the following information):
- AppSync SDK Version: 3.1.1
Device Information (please complete the following information):
- Device: HuaWei P30
- Android Version: Android 10 (EMUI 11.0.0)
Additional context
2021-02-01 10:16:42.186 13424-29995/? E/AndroidRuntime: FATAL EXCEPTION: Thread-237
Process: PACKAGENAME, PID: 13424
java.lang.RuntimeException: Cognito Userpools failed to get session
at com.amazonaws.mobileconnectors.appsync.sigv4.BasicCognitoUserPoolsAuthProvider.fetchToken(BasicCognitoUserPoolsAuthProvider.java:80)
at com.amazonaws.mobileconnectors.appsync.sigv4.BasicCognitoUserPoolsAuthProvider.getLatestAuthToken(BasicCognitoUserPoolsAuthProvider.java:86)
at PACKAGENAME.common.aws.AWSClientFactory$1.getLatestAuthToken(AWSClientFactory.java:37)
at com.amazonaws.mobileconnectors.appsync.SubscriptionAuthorizer.getAuthorizationDetailsForUserpools(SubscriptionAuthorizer.java:160)
at com.amazonaws.mobileconnectors.appsync.SubscriptionAuthorizer.getAuthorizationDetails(SubscriptionAuthorizer.java:85)
at com.amazonaws.mobileconnectors.appsync.WebSocketConnectionManager.requestSubscription(WebSocketConnectionManager.java:92)
at com.amazonaws.mobileconnectors.appsync.AppSyncWebSocketSubscriptionCall.execute(AppSyncWebSocketSubscriptionCall.java:48)
at PACKAGENAME.activities.chat.RoomMessageView.prepareOnUpdateRoomLastReadDateByRoomObserver(RoomMessageView.java:1614)
at PACKAGENAME.activities.chat.RoomMessageView.access$3400(RoomMessageView.java:104)
at PACKAGENAME.activities.chat.RoomMessageView$24.run(RoomMessageView.java:1465)
at java.lang.Thread.run(Thread.java:929)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with BasicCognitoUserPoolsAuthProvider.fetchToken and getLatestAuthToken, then follow the call path through SubscriptionAuthorizer and WebSocketConnectionManager. Reproduce the failure after the app remains in the background and returns to the foreground on the stated Android environment; done means the reported session-fetch failure is understood and the affected subscription flow is verified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, aws, graphql, java
- Domain
- api, authentication, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100