Activities of "ageiter"

To my real problem:

Unfortunately, I could not reproduce the error with newly generated solutions. Not even with older versions.

I originally created the project with 8.2.0-rc.5 and later updated it to 8.2.2. Perhaps an error occurred somewhere there that led to this behavior.

Can you tell me which files I could start with for my search? What could be wrong so that the disconnect request is not sent by the client? (https://localhost:44341/_blazor/disconnect is missing)

Unfortunately, I have not been able to create a solution with LeptonX (and version 8.2.2). Even when I specified --theme leptonx, LeptonXLite was generated.

Well, it's not that relevant for finding a solution anyway.

I would like to reproduce the error in a newly generated solution. Unfortunately, I can't find out how to generate a new solution in a specific (old) version using CLI or ABP Studio... how can I do that? Do I need to downgrade the CLI or the Studio first?

EDIT: Ok, I've figured it out... Uninstall the CLI and reinstall the corresponding version. It would be nice if you could also select the version when creating a solution via ABP Studio.

I have now compared the logs between a working application with ABP 8.1.0 and my problem app with version with ABP 8.2.2.

Here is the difference in the log when closing a browser tab:

Blazor Server App with ABP 8.1.0 (everything fine)

2025-03-21 17:25:10.677 +01:00 [INF] Request starting HTTP/2 POST https://localhost:44341/_blazor/disconnect - multipart/form-data; boundary=----WebKitFormBoundaryLKTHDnNIYH3gmiLr 359

2025-03-21 17:25:10.678 +01:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri.
2025-03-21 17:25:10.678 +01:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri.
2025-03-21 17:25:10.678 +01:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType.
2025-03-21 17:25:10.678 +01:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by Volo.Abp.Account.Web.Pages.Account.OpenIddictImpersonateInferEndpointType.
2025-03-21 17:25:10.678 +01:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement.
2025-03-21 17:25:10.678 +01:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader.
2025-03-21 17:25:10.687 +01:00 [DBG] Get dynamic claims cache for user: 7feb2acd-742e-5eea-91ce-3a11e4ceaa41

2025-03-21 17:25:10.688 +01:00 [INF] Executing endpoint 'Blazor disconnect'
2025-03-21 17:25:10.767 +01:00 [INF] Executed endpoint '/_blazor'
2025-03-21 17:25:10.767 +01:00 [INF] Request finished HTTP/1.1 GET https://localhost:44341/_blazor?id=RDJXbzEi_-BTtSeihTm2Yg - 101 null null 19127.4719ms

Blazor Server App with ABP 8.2.2

2025-03-21 17:18:52.406 +01:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri.
2025-03-21 17:18:52.414 +01:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri.
2025-03-21 17:18:52.433 +01:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType.
2025-03-21 17:18:52.451 +01:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by Volo.Abp.Account.Web.Pages.Account.OpenIddictImpersonateInferEndpointType.
2025-03-21 17:18:52.506 +01:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement.
2025-03-21 17:18:52.533 +01:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader.
2025-03-21 17:18:52.551 +01:00 [DBG] Get dynamic claims cache for user: f487c7e2-64bf-73ca-b12f-3a13383af04e
2025-03-21 17:18:52.601 +01:00 [DBG] Get dynamic claims cache for user: f487c7e2-64bf-73ca-b12f-3a13383af04e

2025-03-21 17:18:52.617 +01:00 [WRN] The operation was canceled.
System.OperationCanceledException: The operation was canceled.
   at System.Threading.CancellationToken.ThrowOperationCanceledException()
   at Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.GetAsync(String key, CancellationToken token)
   at Volo.Abp.Caching.DistributedCache`2.GetAsync(TCacheKey key, Nullable`1 hideErrors, Boolean considerUow, CancellationToken token)
2025-03-21 17:18:53.212 +01:00 [ERR] Error when dispatching 'OnDisconnectedAsync' on hub.
System.Threading.Tasks.TaskCanceledException: A task was canceled.
   at Volo.Abp.Threading.SemaphoreSlimExtensions.LockAsync(SemaphoreSlim semaphoreSlim, CancellationToken cancellationToken)
   at Volo.Abp.Caching.DistributedCache`2.GetOrAddAsync(TCacheKey key, Func`1 factory, Func`1 optionsFactory, Nullable`1 hideErrors, Boolean considerUow, CancellationToken token)
   at Volo.Abp.Identity.IdentityDynamicClaimsPrincipalContributorCache.GetAsync(Guid userId, Nullable`1 tenantId)
   at Volo.Abp.Identity.IdentityDynamicClaimsPrincipalContributor.ContributeAsync(AbpClaimsPrincipalContributorContext context)
   at Volo.Abp.Security.Claims.AbpClaimsPrincipalFactory.InternalCreateAsync(AbpClaimsPrincipalFactoryOptions options, ClaimsPrincipal existsClaimsPrincipal, Boolean isDynamic)
   at Volo.Abp.Security.Claims.AbpClaimsPrincipalFactory.CreateDynamicAsync(ClaimsPrincipal existsClaimsPrincipal)
   at Volo.Abp.AspNetCore.SignalR.Authentication.AbpAuthenticationHubFilter.HandleDynamicClaimsPrincipalAsync(ClaimsPrincipal claimsPrincipal, IServiceProvider serviceProvider, HubCallerContext hubCallerContext, Boolean skipCheckDynamicClaimsInterval)
   at Volo.Abp.AspNetCore.SignalR.Authentication.AbpAuthenticationHubFilter.OnDisconnectedAsync(HubLifetimeContext context, Exception exception, Func`3 next)
   at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.OnDisconnectedAsync(HubLifetimeContext context, Exception exception, Func`3 next)
   at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.OnDisconnectedAsync(HubLifetimeContext context, Exception exception, Func`3 next)
   at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.OnDisconnectedAsync(HubLifetimeContext context, Exception exception, Func`3 next)
   at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.OnDisconnectedAsync(HubLifetimeContext context, Exception exception, Func`3 next)
   at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.OnDisconnectedAsync(HubConnectionContext connection, Exception exception)
   at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.OnDisconnectedAsync(HubConnectionContext connection, Exception exception)
   at Microsoft.AspNetCore.SignalR.HubConnectionHandler`1.HubOnDisconnectedAsync(HubConnectionContext connection, Exception exception)
2025-03-21 17:18:53.676 +01:00 [ERR] Failed disposing connection Lk2CIWX22T3WTLFJ1qejhg.
System.Threading.Tasks.TaskCanceledException: A task was canceled.
   at Volo.Abp.Threading.SemaphoreSlimExtensions.LockAsync(SemaphoreSlim semaphoreSlim, CancellationToken cancellationToken)
   at Volo.Abp.Caching.DistributedCache`2.GetOrAddAsync(TCacheKey key, Func`1 factory, Func`1 optionsFactory, Nullable`1 hideErrors, Boolean considerUow, CancellationToken token)
   at Volo.Abp.Identity.IdentityDynamicClaimsPrincipalContributorCache.GetAsync(Guid userId, Nullable`1 tenantId)
   at Volo.Abp.Identity.IdentityDynamicClaimsPrincipalContributor.ContributeAsync(AbpClaimsPrincipalContributorContext context)
   at Volo.Abp.Security.Claims.AbpClaimsPrincipalFactory.InternalCreateAsync(AbpClaimsPrincipalFactoryOptions options, ClaimsPrincipal existsClaimsPrincipal, Boolean isDynamic)
   at Volo.Abp.Security.Claims.AbpClaimsPrincipalFactory.CreateDynamicAsync(ClaimsPrincipal existsClaimsPrincipal)
   at Volo.Abp.AspNetCore.SignalR.Authentication.AbpAuthenticationHubFilter.HandleDynamicClaimsPrincipalAsync(ClaimsPrincipal claimsPrincipal, IServiceProvider serviceProvider, HubCallerContext hubCallerContext, Boolean skipCheckDynamicClaimsInterval)
   at Volo.Abp.AspNetCore.SignalR.Authentication.AbpAuthenticationHubFilter.OnDisconnectedAsync(HubLifetimeContext context, Exception exception, Func`3 next)
   at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.OnDisconnectedAsync(HubLifetimeContext context, Exception exception, Func`3 next)
   at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.OnDisconnectedAsync(HubLifetimeContext context, Exception exception, Func`3 next)
   at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.OnDisconnectedAsync(HubLifetimeContext context, Exception exception, Func`3 next)
   at Microsoft.AspNetCore.SignalR.Internal.HubFilterFactory.OnDisconnectedAsync(HubLifetimeContext context, Exception exception, Func`3 next)
   at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.OnDisconnectedAsync(HubConnectionContext connection, Exception exception)
   at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.OnDisconnectedAsync(HubConnectionContext connection, Exception exception)
   at Microsoft.AspNetCore.SignalR.HubConnectionHandler`1.HubOnDisconnectedAsync(HubConnectionContext connection, Exception exception)
   at Microsoft.AspNetCore.SignalR.HubConnectionHandler`1.RunHubAsync(HubConnectionContext connection)
   at Microsoft.AspNetCore.SignalR.HubConnectionHandler`1.OnConnectedAsync(ConnectionContext connection)
   at Microsoft.AspNetCore.SignalR.HubConnectionHandler`1.OnConnectedAsync(ConnectionContext connection)
   at Microsoft.AspNetCore.Http.Connections.Internal.HttpConnectionContext.ExecuteApplication(ConnectionDelegate connectionDelegate)
   at Microsoft.AspNetCore.Http.Connections.Internal.HttpConnectionContext.WaitOnTasks(Task applicationTask, Task transportTask, Boolean closeGracefully)
   at Microsoft.AspNetCore.Http.Connections.Internal.HttpConnectionContext.DisposeAsync(Boolean closeGracefully)
   at Microsoft.AspNetCore.Http.Connections.Internal.HttpConnectionManager.DisposeAndRemoveAsync(HttpConnectionContext connection, Boolean closeGracefully, HttpConnectionStopStatus status)

In the version below with the exception, you can see that the following is missing:

2025-03-21 17:25:10.677 +01:00 [INF] Request starting HTTP/2 POST https://localhost:44341/_blazor/disconnect - multipart/form-data; boundary=----WebKitFormBoundaryLKTHDnNIYH3gmiLr 359

What could be the reason for this?

Thanks for your feedback, I'll ask and learn why this was done like that previously, and we'll update it as you mentioned if possible in the module.

Great! Thanks.

Thanks, I have now made the following change:

        // Initialize edition end date if it is not set or has expired
        if (!tenant.EditionEndDateUtc.HasValue || tenant.EditionEndDateUtc.Value < DateTime.UtcNow)
        {
            tenant.EditionEndDateUtc = DateTime.UtcNow;
            await TenantRepository.UpdateAsync(tenant);
        }

Thank you for your answer @enisn.

Stripe offers different ways to upgrade, depending on the configuration. We use Stripe's customer portal, which the customer then uses to upgrade. This is also perfectly notified via the webhooks to our app and the StripePaymentGateway also handles this correctly (new edition is set to tenant). This is not the problem.

The problem is when the customer is already logged in and comes back to the page where he can choose the different subscriptions (no upgrade via our official way with the Stripe customer portal).

Can you provide me with the code for the method CreateSubscriptionAsync? Then I can overwrite it myself.

I have noticed the following problem in connection with the payment.

The following scenario:

  • Customer already has a valid subscription with an end date > today
  • The tenant EditionEndDateUtc is a date in the future
  • Now he triggers a new PaymentRequest (e.g. because he wants to change the edition)
  • He cancels the payment (with the back button) and has therefore not made a payment

-> Result: His previously valid subscription has been deactivated, as the EditionEndDateUtc is automatically reset when the PaymentRequest is created.

How could the problem be solved? Why is the date changed in the tenant using the SubscriptionAppService.CreateSubscriptionAsync method, even if the payment has not yet been completed and there is already a valid date in it? What is the reason for this?

            var paymentRequest = await SubscriptionAppService.CreateSubscriptionAsync(editionId.Value, TenantId.Value);

            await RedirectToPaymentGateway(paymentRequest.Id);

How can I reproduce this exception in the template project?

Can you share a simple project or code and steps?

Unfortunately, I can't explain how you could reproduce this (as I don't know myself where these errors are coming from). But at the moment I don't have the time to look into it. However, it seems that it still works and the end user doesn't notice anything.

Can you check your question in Chrome dev-tool?

You can consider moving the js code to a function(PostPaymentGatewaySelectionForm), then Invoke this function in blazor.

await JSRuntime.InvokeVoidAsync("PostPaymentGatewaySelectionForm") 

Unfortunately, no success in this matter. That didn't help and I don't see anything relevant via the dev-tools either.

But generally I have exceptions of this kind again and again... but the end user doesn't notice anything.

Showing 31 to 40 of 271 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 12, 2025, 10:36
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.