Poor user experience with embedding dashboards

We are are embedding quicksight dashboards in our application running in the the us-east-2 region using the “generateEmbedUrlForRegisteredUser” API call. If it is a new users first time visiting the page we first register the user with quicksight using the “registerUser” API call.

In order to get this order of events to work properly because our dashboards and our application are in us-east-2, and you can only register users in the us-east-1 region, we found that we have to use two separate quicksight clients.

A user creation quicksight client instantiated in us-east-1 with admin credentials to create the new user with the “registerUser” operation.

And then a quicksight client instantiated in us-east-2 region to make the “generateEmbedUrlForRegisteredUser” API call.

We are finding that many times even though the user has been successfully created when our application tries to make the second call we get a “ResourceNotFoundException” for the user even though the registerUser API call was successful and the new user is visible in the quicksight console.

For now we are handling this by catching the error and throwing a 429 with an error message telling the user to return again after some time so their user can finish being created, but we were wondering if there is a better way to go about this? We are assuming there must be some issue with eventual consistency on whatever backend quicksight is using.

Also we would like to confirm whether or not it is always necessary to create a new user in the us-east-1 region. Our research has shown us that it is, but we were wondering if anyone has ever gotten around this issue or gotten the API call to work in another region?

Hi @ruiponte1990 - some time back, perhaps before you created your QuickSight account, QS added ability to customize your identity region at time of signup (previously was only US East 1). Unfortunately you cannot change this after the fact. You would need to create a new account or unsub/resubscribe your account.

Can reference this article as you are signing up again (see Region Selection section):

Alternatively you could migrate your dashboard to match your identity region, but then data connectivity to your data source becomes a consideration.

Is it possible to create a second Quicksight account in the same AWS account? All of the documentation I have found is for setting one up from scratch in an AWS account that had not previously used Quicksight.

I see there is a “CreateAccountSubscription” API call. Would it be possible to use this to create a second Quicksight account in the same AWS account, set it up using the appropriate identity region, and then recreate or import the datasets and analyses from the existing account before deleting it when the resources have been migrated successfully? I did not see a " DeleteAccountSubscription" API endpoint.

If we unsub/resubscribe our account would this mean that we would lose all of our previous work in this account if we didn’t back up our resources in another one?

You can only have 1 QS account per AWS account. Correct that if you unsubscribe your account you would lose your content. You could stand up a second temporary account in another AWS account and migrate you content there, then unsub/resub and then migrate back.

These couple links should help:

Hi Jesse,

First off thanks for all the help! I am trying to migrate my resources to one of our other accounts so we can try recreating them with the original account set up to use the correct identity region, but when I created the new quicksight account for backup I did not see any option to select my identity region, only an option to select a region for the quicksight account itself ( I chose us-east-2 ). I actually read that an appropriate identity region would be selected for me.

However testing the register-user call in the backup account still gives me an error when I try to do it from us-east-2.

An error occurred (AccessDeniedException) when calling the RegisterUser operation: Operation is being called from endpoint us-east-2, but your identity region is us-east-1. Please use the us-east-1 endpoint.

Where is the option to select my quicksight identity region in the sign up form?