Starts in:
1 DAY
21 HRS
40 MIN
23 SEC
Starts in:
1 D
21 H
40 M
23 S

Activities of "burkay"

Hello,

I updated the ABP CLI to the version 7.2.2 and created a new project with the below commands:

dotnet tool update -g Volo.Abp.Cli
abp new Acme.BookStore -u angular -dbms PostgreSQL -csf

Then followed the steps in the original post with only two tabs. Sent the log file to your e-mail. Please note that there are JavaScript errors as well. Screenshots below.

  • ABP Framework version: v7.2.2
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes / no
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

Hello,

Here are the easiest steps to reproduce the issue we are going to report:

  1. Open the demo at https://commercial-demo.abp.io/ and log in.
  2. Open the home page in at least two tabs.
  3. Refresh all the tabs at the same time. Be as fast as you can.
  4. Optionally, open up the developer tools, go to the Network tab and open up console to see the requests and errors.
  5. Wait until a refresh token request kicks in.

At best, user is logged out in all the other tabs but one tab. At worst, a never ending request loop runs with errors in responses in all tabs. We ran into both cases. Below is a screenshot from the worst case, taken after I hit the stop button of the browser.

This is related to OpenIdDict. The same problem is reported some years ago in a comment for a two-major-previous-version of it: https://github.com/openiddict/openiddict-core/issues/783#issuecomment-528824283 . This comment is also related and very informative about the issue https://github.com/manfredsteyer/angular-oauth2-oidc/issues/218#issuecomment-414158965 .

Sometimes we lose unsaved work when working with too many tabs due to this problem. Your demo also has it, so we hope you come up with a solution, a fix or configuration, soon. Maybe catch the exception and retry for a configurable number of times to get over the race condition. Looking forward to your response.

Answer

Thank you!

Answer

Hello,

We are fine with this mapping. The problem is the change about how angular ui handles the exception. Let me explain it in detail.

I created a new project with the latest ABP Suite. Added a simple service method with the below code

        public async Task<PagedResultDto<LanguageDto>> GetListAsync(string exceptionType)
        {
            var list = await _languageRepository.GetListAsync();

            switch(exceptionType)
            {
                case "businessException":
                    throw new BusinessException("BE", "Business exception");
                case "userFriendlyException":
                    throw new UserFriendlyException("UFE", "User friendly exception");
                case "abpValidationException":
                    throw new AbpValidationException("AbpValidationException");
            }

            return new PagedResultDto<LanguageDto>(10, ObjectMapper.Map<List<Language>, List<LanguageDto>>(list));
        }

Then added three buttons to the home page to call this method with different inputs.

First, in packages.json, I set versions of all the abp related packages to 7.1.1. Clicked on the three buttons. All the response status codes are aligned with your messsage. They all show the responses in a dialog without leaving the current page. Screenshots are below.

7.1.1 Business Exception

7.1.1 User Friendly Exception

7.1.1 Abp Validation Exception

Then, in packages.json, I set versions of all the abp related packages to 7.2.1. Repeated the same procedure. Got the same responses with same response status codes. However, in BusinessException and UserFriendlyException cases, the current page is left and the eror page is shown. After clicking on Go back link, original page is opened with the error dialog. Our problem is this change of behavior in angular side of exception handling. Screenshots are below.

7.2.1 Business Exception

after clicking Go back

7.2.1 User Friendly Exception

after clicking Go back

7.2.1 Abp Validation Exception

We want to keep using BusinessException and UserFriendlyException without this behavioral change. I hope I can clarify the issue better now.

Best wishes.

Answer

Hello,

We observed that downgrading the backend packages did not solve the problem. It is solved after downgrading the Angular packages. It is reproducible with a fresh project as well. Anyway, you can get the logs at https://ufile.io/uo4y0w39 .

Best.

Question
  • ABP Framework version: v7.2.1
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes / no
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

Hello,

We just upgraded to v7.2.1 and realized that throwing BusinessException or UserFriendlyException causes a 403 response. We observed the same error with a newly created clean project. It was working fine with v7.1.1.

Thank you!

Hello again. You cannot reproduce because the whole content of "Emailing" tab on "Settings" page fits in the height of the page in your screencasts. In our case, we disabled the "Emailing" settings for tenants. "Settings" page directly shows the "Identity Management" tab and we face the scroll problem. Alternatively, please try resizing the window so vertical scroll bar shows up on "Settings" page.

I just updated abp cli to version 7.1.1, created a new project and saw the problem. You can find the yarn.lock file at https://pastebin.com/ag6A7sGN

It does not happen with every page pairs. Please try the pages I listed in the original post. Scroll to the bottom on the "Audit Logs" page, then go to "Settings" page.

  • ABP Framework version: v7.1.1
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes / no
  • Exception message and stack trace:
  • Steps to reproduce the issue:
    1. Go to Administration > Audit Logs page
    2. Scroll to the bottom of the page
    3. Go to Administration > Settings page
    4. Settings page shows up scrolled to the bottom. Expected behavior is it shows up from the top of the page.

Tried with a newly created project. Also tried hitting Ctrl - F5 between steps 1 and 2. Happens with some other pages as well, e.g. Language Management > Languages and Administration > Settings. Observed in Chrome and Firefox.

Showing 11 to 20 of 23 entries
Made with ❤️ on ABP v9.1.0-preview. Updated on November 20, 2024, 13:06