Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(auth): Uncaught Hosted UI cancellation #3686

Merged
merged 2 commits into from
Sep 5, 2023
Merged

Conversation

dnys1
Copy link
Contributor

@dnys1 dnys1 commented Sep 4, 2023

The HostedUIPlatform had a bug due to the fact that it both called dispatcher.dispatchAndComplete (which throws on failure states) and threw a UserCancelledException which triggers a failure state. This lead to the error being thrown from signInWithWebUI and an uncaught exception being raised at the dispatchAndComplete call.

This resolves the issue by only throwing from the HostedUiPlatform and letting the state machine resolving the cancellation.

This also fixes an issue where cancelSignIn was never being called because the state machine was in a signingIn state at the time the cancellation was dispatched.

Dillon Nys added 2 commits September 4, 2023 16:37
`unawaited` will still raise an error if there is one. By using `EventCompleter.ignore` we drop all completions, success or error.
The HostedUIPlatform had a bug due to the fact that it both called `dispatcher.dispatchAndComplete` (which throws on failure states) and throwing a `UserCancelledException` which triggers a failure state. This lead to the error being thrown from `signInWithWebUI` and an uncaught exception being raised at the `dispatchAndComplete` call.

This resolves the issue by only throwing from the HostedUiPlatform and letting the state machine resolving the cancellation.

This also fixes an issue where `cancelSignIn` was never being called because the state machine was in a `signingIn` state at the time the cancellation was dispatched.
@dnys1 dnys1 merged commit 802c7c8 into main Sep 5, 2023
192 of 206 checks passed
@dnys1 dnys1 deleted the fix/auth/hosted-ui-uncaught branch September 5, 2023 15:33
dnys1 added a commit that referenced this pull request Sep 11, 2023
* chore(auth): Use `EventCompleter.ignore` instead of `unawaited`

`unawaited` will still raise an error if there is one. By using `EventCompleter.ignore` we drop all completions, success or error.

* fix(auth): Uncaught Hosted UI cancellation

The HostedUIPlatform had a bug due to the fact that it both called `dispatcher.dispatchAndComplete` (which throws on failure states) and throwing a `UserCancelledException` which triggers a failure state. This lead to the error being thrown from `signInWithWebUI` and an uncaught exception being raised at the `dispatchAndComplete` call.

This resolves the issue by only throwing from the HostedUiPlatform and letting the state machine resolving the cancellation.

This also fixes an issue where `cancelSignIn` was never being called because the state machine was in a `signingIn` state at the time the cancellation was dispatched.
dnys1 pushed a commit that referenced this pull request Sep 11, 2023
### Fixes
- fix(auth): Crash with EXC_BAD_ACCESS ([#3657](#3657))
- fix(auth): Custom auth with device tracking, no SRP ([#3652](#3652))
- fix(auth): Uncaught Hosted UI cancellation ([#3686](#3686))
- fix: removed trailing slash at the end of uri ([#3626](#3626))

Updated-Components: amplify_lints, Amplify Flutter, Amplify Dart, Amplify UI, DB Common, Secure Storage, AWS Common, Smithy, Worker Bee
dnys1 added a commit that referenced this pull request Sep 11, 2023
* chore(auth): Use `EventCompleter.ignore` instead of `unawaited`

`unawaited` will still raise an error if there is one. By using `EventCompleter.ignore` we drop all completions, success or error.

* fix(auth): Uncaught Hosted UI cancellation

The HostedUIPlatform had a bug due to the fact that it both called `dispatcher.dispatchAndComplete` (which throws on failure states) and throwing a `UserCancelledException` which triggers a failure state. This lead to the error being thrown from `signInWithWebUI` and an uncaught exception being raised at the `dispatchAndComplete` call.

This resolves the issue by only throwing from the HostedUiPlatform and letting the state machine resolving the cancellation.

This also fixes an issue where `cancelSignIn` was never being called because the state machine was in a `signingIn` state at the time the cancellation was dispatched.
dnys1 pushed a commit that referenced this pull request Sep 11, 2023
### Fixes
- fix(auth): Crash with EXC_BAD_ACCESS ([#3657](#3657))
- fix(auth): Custom auth with device tracking, no SRP ([#3652](#3652))
- fix(auth): Uncaught Hosted UI cancellation ([#3686](#3686))
- fix: removed trailing slash at the end of uri ([#3626](#3626))

Updated-Components: amplify_lints, Amplify Flutter, Amplify Dart, Amplify UI, DB Common, Secure Storage, AWS Common, Smithy, Worker Bee
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.

3 participants