BTW, I have the idea why there could be a timeout. We have a custom configuration which adds so-called module permissions to the output. Please have a look, maybe you have the idea how to improve this. But one way or another, we need to get this information on client-side. I thought about using caching here in a more efficient way. But I'd prefer the permission information remained up-to-date and besides, it won't eliminate the cancellation during the first call (unless we warm-up the configuration data somehow in advance):
    [Dependency(ReplaceServices = true)]
    [ExposeServices(typeof(IAbpApplicationConfigurationAppService))]
    public class ModulePermissionApplicationConfigurationAppService : AbpApplicationConfigurationAppService, IAbpApplicationConfigurationAppService
    {
        private readonly IPermissionGrantRepository _permissionGrantRepository;
        private readonly IModulePermissionChecker _modulePermissionChecker;
    
        public ModulePermissionApplicationConfigurationAppService
        (
            IPermissionGrantRepository permissionGrantRepository,
            IModulePermissionChecker modulePermissionChecker,
            IOptions<AbpLocalizationOptions> localizationOptions,
            IOptions<AbpMultiTenancyOptions> multiTenancyOptions,
            IServiceProvider serviceProvider,
            IAbpAuthorizationPolicyProvider abpAuthorizationPolicyProvider,
            IPermissionDefinitionManager permissionDefinitionManager,
            DefaultAuthorizationPolicyProvider defaultAuthorizationPolicyProvider,
            IPermissionChecker permissionChecker,
            IAuthorizationService authorizationService,
            ICurrentUser currentUser,
            ISettingProvider settingProvider,
            ISettingDefinitionManager settingDefinitionManager,
            IFeatureDefinitionManager featureDefinitionManager,
            ILanguageProvider languageProvider,
            ITimezoneProvider timezoneProvider,
            IOptions<AbpClockOptions> abpClockOptions,
            ICachedObjectExtensionsDtoService cachedObjectExtensionsDtoService,
            IOptions<AbpApplicationConfigurationOptions> options
        ) : base
            (
                localizationOptions,
                multiTenancyOptions,
                serviceProvider,
                abpAuthorizationPolicyProvider,
                permissionDefinitionManager,
                defaultAuthorizationPolicyProvider,
                permissionChecker,
                authorizationService,
                currentUser,
                settingProvider,
                settingDefinitionManager,
                featureDefinitionManager,
                languageProvider,
                timezoneProvider,
                abpClockOptions,
                cachedObjectExtensionsDtoService,
                options
            )
        {
            _permissionGrantRepository = permissionGrantRepository;
            _modulePermissionChecker = modulePermissionChecker;
        }
    
        public override async Task<ApplicationConfigurationDto> GetAsync(ApplicationConfigurationRequestOptions options)
        {
            var result = await base.GetAsync(options);
    
            var moduleRoleNames = await _modulePermissionChecker.GetModuleRoleNamesAsync();
    
            Dictionary<string, HashSet<string>> modulePermissionMap;
    
            using (CurrentTenant.Change(null))
            {
                var moduleRolePermissionGrants = await _permissionGrantRepository.GetListAsync();
    
                modulePermissionMap = moduleRoleNames
                    .GroupJoin
                    (
                        moduleRolePermissionGrants.Where(pg => pg.ProviderName == RolePermissionValueProvider.ProviderName),
                        moduleRoleName => moduleRoleName,
                        permissionGrant => permissionGrant.ProviderKey,
                        (moduleRoleName, permissionGrants) => (moduleRoleName, permissionGrantNames: permissionGrants.Select(x => x.Name))
                    )
                    .GroupBy(x => x.moduleRoleName.GetModuleId())
                    .Where(group => group.Key != null)
                    .ToDictionary(x => x.Key, x => x.SelectMany(moduleRolePermission => moduleRolePermission.permissionGrantNames).ToHashSet());
            }
    
            var ordinaryRolePermissionGrants = await _permissionGrantRepository.GetListAsync();
    
            modulePermissionMap.Add
            (
                "_ordinaryRole",
                CurrentUser.Roles
                    .GroupJoin
                    (
                        ordinaryRolePermissionGrants.Where(pg => pg.ProviderName == RolePermissionValueProvider.ProviderName),
                        ordinaryRoleName => ordinaryRoleName,
                        permissionGrant => permissionGrant.ProviderKey,
                        (ordinaryRoleName, permissionGrants) => (ordinaryRoleName, permissionGrantNames: permissionGrants.Select(x => x.Name))
                    )
                    .SelectMany(x => x.permissionGrantNames).ToHashSet()
            );
    
            result.ExtraProperties.Add("modulePermissionMap", modulePermissionMap);
    
            return result;
        }
    }
    
    public class ModulePermissionChecker : IModulePermissionChecker
    {
        private readonly IDistributedCache<ModulePermissionCacheItem> _modulePermissionCache;
        private readonly IDistributedCache<AbpPermissionCacheItem> _abpPermissionCache;
        private readonly IIdentityUserRepository _identityUserRepository;
        private readonly IPermissionGrantRepository _permissionGrantRepository;
        private readonly IPermissionDefinitionRecordRepository _permissionDefinitionRecordRepository;
        private readonly ICurrentTenant _currentTenant;
        private readonly ICurrentUser _currentUser;
        private readonly int CacheExpirationDay = 1;
        private string ModulePermissionCacheKey => $"ModulePermission:{_currentUser.Id}";
        private string AbpPermissionCacheKey => $"AbpPermission:{_currentUser.Id}";
    
        public ModulePermissionChecker
        (
            IIdentityUserRepository identityUserRepository,
            IPermissionGrantRepository permissionGrantRepository,
            IPermissionDefinitionRecordRepository permissionDefinitionRecordRepository,
            IDistributedCache<ModulePermissionCacheItem> modulePermissionCache,
            IDistributedCache<AbpPermissionCacheItem> abpPermissionCache,
            ICurrentTenant currentTenant,
            ICurrentUser currentUser
        )
        {
            _identityUserRepository = identityUserRepository;
            _permissionGrantRepository = permissionGrantRepository;
            _permissionDefinitionRecordRepository = permissionDefinitionRecordRepository;
            _modulePermissionCache = modulePermissionCache;
            _abpPermissionCache = abpPermissionCache;
            _currentTenant = currentTenant;
            _currentUser = currentUser;
        }
    
        public async Task<HashSet<string>> GetModuleRoleNamesAsync()
        {
            if (!_currentUser.IsAuthenticated)
            {
                return new HashSet<string>();
            }
            var modulePermissionCacheItem = await _modulePermissionCache.GetOrAddAsync
            (
                ModulePermissionCacheKey,
                GetModulePermissionCacheItemAsync,
                () => new DistributedCacheEntryOptions
                {
                    AbsoluteExpiration = DateTimeOffset.Now.AddDays(CacheExpirationDay)
                }
            );
    
            return modulePermissionCacheItem.ModuleRoleNames;
        }
    
        public async Task<HashSet<string>> GetAbpPermissionsAsync()
        {
            if (!_currentUser.IsAuthenticated)
            {
                return new HashSet<string>();
            }
            var abpPermissionCacheItem = await _abpPermissionCache.GetOrAddAsync
            (
                AbpPermissionCacheKey,
                GetAbpPermissionCacheItemAsync,
                () => new DistributedCacheEntryOptions
                {
                    AbsoluteExpiration = DateTimeOffset.Now.AddDays(CacheExpirationDay)
                }
            );
    
            return abpPermissionCacheItem.Permissions;
        }
    
        private async Task<ModulePermissionCacheItem> GetModulePermissionCacheItemAsync()
        {
            var ordinaryRoleNames = await _identityUserRepository.GetRoleNamesAsync(_currentUser.Id.Value);
            var moduleRoleNames = new HashSet<string>();
    
            foreach (var ordinaryRoleName in ordinaryRoleNames)
            {
                var permissionGrantsAkaModuleRoles = await _permissionGrantRepository.GetListAsync(ModulePermissionConsts.RoleProviderName, ordinaryRoleName);
                permissionGrantsAkaModuleRoles.ForEach(permissionGrantAkaModuleRole =>
                {
                    moduleRoleNames.Add(permissionGrantAkaModuleRole.Name);
                });
            };
    
            return new ModulePermissionCacheItem { ModuleRoleNames = moduleRoleNames };
        }
    
        private async Task<AbpPermissionCacheItem> GetAbpPermissionCacheItemAsync()
        {
            var permissions = new HashSet<string>();
    
            var abpPermissionDefinitions = (await _permissionDefinitionRecordRepository.GetListAsync()).Where(pd => ModulePermissionConsts.AbpRelatedPermissionGroups.Contains(pd.GroupName));
    
            return new AbpPermissionCacheItem { Permissions = abpPermissionDefinitions.Select(x => x.Name).ToHashSet() };
        }
    }
Ok - I have generated a test project (back-end and front-end) via a console. But I cannot run it due to various issues (both in back-end and front-end part). The server error log is inside the archive I have shared with you. The Angular errors have something to do with Angular versions discrepancies and packages incompatibilities, which is weird too, because I used a standard way to install the packages (+ install libs command from yarn). Could you please make it runnable + use Redis Cache instead of Distributed Cache and probably add OpenID server as a separate project (like we have)? Thank you.
No, we are not allowed to share the project. The log and exceptions is all I can provide. Sorry.
Honestly - I have no idea, sorry... I just thought you might give me some clue where to look for the route cause, because this only happens with ABP configration API request. Now I received it here. But it's also connected to ABP configuration call:
2025-10-15 01:28:50.966 -05:00 INF (-) Request starting HTTP/1.1 GET https://localhost:44338/api/abp/application-configuration?includeLocalizationResources=false - null null 2025-10-15 01:28:50.968 -05:00 INF (-) CORS policy execution successful. 2025-10-15 01:28:51.634 -05:00 WRN (-) The operation was canceled.System.OperationCanceledException: The operation was canceled. at System.Threading.CancellationToken.ThrowOperationCanceledException() at System.Threading.CancellationToken.ThrowIfCancellationRequested() at Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.GetAsync(String key, CancellationToken token) at Volo.Abp.Caching.DistributedCache
2.GetAsync(TCacheKey key, Nullable1 hideErrors, Boolean considerUow, CancellationToken token)2025-10-15 01:28:51.840 -05:00 INF (3-alexandis) Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController.GetAsync (Volo.Abp.AspNetCore.Mvc)' 2025-10-15 01:28:51.867 -05:00 INF (3-alexandis) Route matched with {area = "abp", action = "Get", controller = "AbpApplicationConfiguration", page = ""}. Executing controller action with signature System.Threading.Tasks.Task
1[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto] GetAsync(Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions) on controller Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController (Volo.Abp.AspNetCore.Mvc). 2025-10-15 01:28:52.302 -05:00 ERR (-) ORA-01013: User requested cancel of current operation. https://docs.oracle.com/error-help/db/ora-01013/System.OperationCanceledException: ORA-01013: User requested cancel of current operation. https://docs.oracle.com/error-help/db/ora-01013/ ---> Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-01013: User requested cancel of current operation. https://docs.oracle.com/error-help/db/ora-01013/ at OracleInternal.ServiceObjects.OracleConnectionInternal.OpenAsyncHelper(CancellationToken cancellationToken) at OracleInternal.ServiceObjects.OracleConnectionInternal.OpenAsync(CancellationToken cancellationToken) --- End of inner exception stack trace --- at OracleInternal.ServiceObjects.OracleConnectionInternal.OpenAsync(CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) at Oracle.EntityFrameworkCore.Storage.Internal.OracleRelationalCommandBuilderFactory.OracleRelationalCommandBuilder.OracleRelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken) at Oracle.EntityFrameworkCore.Storage.Internal.OracleExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func4 operation, Func4 verifySucceeded, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable1.AsyncEnumerator.MoveNextAsync() at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable1 asyncEnumerable, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable1 asyncEnumerable, CancellationToken cancellationToken) at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository3.FindAsync(TKey id, Boolean includeDetails, CancellationToken cancellationToken) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Volo.Saas.Tenants.TenantStore.GetCacheItemAsync(Nullable1 id, String normalizedName) at Volo.Saas.Tenants.TenantStore.FindAsync(Guid id) at Volo.Abp.MultiTenancy.TenantConfigurationProvider.FindTenantAsync(String tenantIdOrName) at Volo.Abp.MultiTenancy.TenantConfigurationProvider.GetAsync(Boolean saveResolveResult) at Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)2025-10-15 01:28:52.641 -05:00 INF (-) Request finished HTTP/1.1 GET https://localhost:44338/api/abp/application-configuration?includeLocalizationResources=false - 499 null application/json; charset=utf-8 1758.474ms 2025-10-15 01:28:53.106 -05:00 DBG (3-alexandis) Executing AbpApplicationConfigurationAppService.GetAsync()...
It does not work like this, causing the exception:
Unhandled exception. Autofac.Core.Activators.Reflection.NoConstructorsFoundException: No constructors on type 'Volo.Abp.Threading.NullCancellationTokenProvider' can be found with the constructor finder 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder'.
So I tried another way:
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(ICancellationTokenProvider))]
public sealed class AlwaysNoneCancellationTokenProvider : ICancellationTokenProvider, ISingletonDependency
{
    public CancellationToken Token => CancellationToken.None;
    public IDisposable Use(CancellationToken cancellationToken)
    {
        return NullDisposable.Instance;
    }
    private sealed class NullDisposable : IDisposable
    {
        public static readonly NullDisposable Instance = new NullDisposable();
        private NullDisposable() { }
        public void Dispose() { }
    }
}
But the error is still there.
No, there is no response:
However, I have noticed that when I start the host (AuthServer + API host), I get an exception in this method (even though there's nothing wrong with this very middleware - it's rather some common problem, which in a way affects application-configuration API call mostly):
public async Task InvokeAsync(HttpContext httpContext, IAbxRequestContext requestContext, IdentityUserManager userManager) { if (httpContext.Request.Path.Equals("/connect/token", StringComparison.OrdinalIgnoreCase) && httpContext.Request.Method == HttpMethods.Post && httpContext.Request.HasFormContentType) { var form = await httpContext.Request.ReadFormAsync(); if (form.TryGetValue("grant_type", out var grantType) && form.TryGetValue("tenant", out var tenant) && grantType == "switch_tenant") { httpContext.Response.OnStarting(() => { if (httpContext.Response.StatusCode == StatusCodes.Status200OK) { httpContext.Response.Cookies.Append( TenantResolverConsts.DefaultTenantKey, tenant.ToString(), new CookieOptions { Path = "/", HttpOnly = false, Expires = DateTimeOffset.Now.AddYears(10), SameSite = SameSiteMode.Strict, Secure = false }); } return Task.CompletedTask; }); } } await _next(httpContext); }
Which looks like this:
2025-10-13 16:44:46.649 -05:00 WRN (-) The operation was canceled.System.OperationCanceledException: The operation was canceled. at System.Threading.CancellationToken.ThrowOperationCanceledException() at System.Threading.CancellationToken.ThrowIfCancellationRequested() at Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.GetAsync(String key, CancellationToken token) at Volo.Abp.Caching.DistributedCache
2.GetAsync(TCacheKey key, Nullable1 hideErrors, Boolean considerUow, CancellationToken token)2025-10-13 16:44:46.800 -05:00 DBG (-) Getting not cache granted permissions from the repository for this provider name,key: R,Role 1 2025-10-13 16:44:46.813 -05:00 WRN (-) The operation was canceled.System.OperationCanceledException: The operation was canceled. at System.Threading.CancellationToken.ThrowOperationCanceledException() at System.Threading.CancellationToken.ThrowIfCancellationRequested() at Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.GetAsync(String key, CancellationToken token) at Volo.Abp.Caching.DistributedCache
2.GetAsync(TCacheKey key, Nullable1 hideErrors, Boolean considerUow, CancellationToken token)2025-10-13 16:44:46.817 -05:00 INF (-) Request finished HTTP/2 GET https://localhost:44308/api/account/profile-picture-file/f6bfc02f-4400-1256-f3db-39fed7dc74b6 - 499 null application/json; charset=utf-8 8763.1875ms 2025-10-13 16:44:46.934 -05:00 ERR (-) ---------- RemoteServiceErrorInfo ---------- { "code": null, "message": "An internal error occurred during your request!", "details": null, "data": null, "validationErrors": null }
2025-10-13 16:44:46.934 -05:00 ERR (-) ORA-01013: User requested cancel of current operation. https://docs.oracle.com/error-help/db/ora-01013/System.OperationCanceledException: ORA-01013: User requested cancel of current operation. https://docs.oracle.com/error-help/db/ora-01013/ ---> Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-01013: User requested cancel of current operation. https://docs.oracle.com/error-help/db/ora-01013/ at OracleInternal.ServiceObjects.OracleConnectionInternal.OpenAsyncHelper(CancellationToken cancellationToken) at OracleInternal.ServiceObjects.OracleConnectionInternal.OpenAsync(CancellationToken cancellationToken) --- End of inner exception stack trace --- at OracleInternal.ServiceObjects.OracleConnectionInternal.OpenAsync(CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected) at Oracle.EntityFrameworkCore.Storage.Internal.OracleRelationalCommandBuilderFactory.OracleRelationalCommandBuilder.OracleRelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable
1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken) at Oracle.EntityFrameworkCore.Storage.Internal.OracleExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func4 operation, Func4 verifySucceeded, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable1.AsyncEnumerator.MoveNextAsync() at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable1 asyncEnumerable, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable1 asyncEnumerable, CancellationToken cancellationToken) at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository3.FindAsync(TKey id, Boolean includeDetails, CancellationToken cancellationToken) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Volo.Saas.Tenants.TenantStore.GetCacheItemAsync(Nullable1 id, String normalizedName) at Volo.Saas.Tenants.TenantStore.FindAsync(Guid id) at Volo.Abp.MultiTenancy.MultiTenantConnectionStringResolver.FindTenantConfigurationAsync(Guid tenantId) at Volo.Abp.MultiTenancy.MultiTenantConnectionStringResolver.ResolveAsync(String connectionStringName) at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider1.ResolveConnectionStringAsync(String connectionStringName) at Volo.Abp.Uow.EntityFrameworkCore.UnitOfWorkDbContextProvider1.GetDbContextAsync() at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository2.GetDbSetAsync() at Volo.Abp.PermissionManagement.EntityFrameworkCore.EfCorePermissionGrantRepository.GetListAsync(String[] names, String providerName, String providerKey, CancellationToken cancellationToken) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Volo.Abp.PermissionManagement.PermissionStore.SetCacheItemsAsync(String providerName, String providerKey, List1 notCacheKeys) at Volo.Abp.PermissionManagement.PermissionStore.GetCacheItemsAsync(String[] names, String providerName, String providerKey) at Volo.Abp.PermissionManagement.PermissionStore.IsGrantedAsync(String[] names, String providerName, String providerKey) at Volo.Abp.Authorization.Permissions.RolePermissionValueProvider.CheckAsync(PermissionValuesCheckContext context) at Volo.Abp.Authorization.Permissions.PermissionChecker.IsGrantedAsync(ClaimsPrincipal claimsPrincipal, String[] names) at Volo.Abp.Authorization.Permissions.PermissionChecker.IsGrantedAsync(String[] names) at Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationAppService.GetAuthConfigAsync() at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Auditing.AuditingInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationAppService.GetAsync(ApplicationConfigurationRequestOptions options) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Auditing.AuditingInterceptor.ProceedByLoggingAsync(IAbpMethodInvocation invocation, AbpAuditingOptions options, IAuditingHelper auditingHelper, IAuditLogScope auditLogScope) at Volo.Abp.Auditing.AuditingInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get() at lambda_method5124(Closure, Object) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.2025-10-13 16:44:46.938 -05:00 INF (-) Executed action Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc) in 7969.9354ms 2025-10-13 16:44:46.941 -05:00 INF (-) Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc)' 2025-10-13 16:44:46.957 -05:00 WRN (-) The operation was canceled.System.OperationCanceledException: The operation was canceled. at System.Threading.CancellationToken.ThrowOperationCanceledException() at System.Threading.CancellationToken.ThrowIfCancellationRequested() at Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.GetAsync(String key, CancellationToken token) at Volo.Abp.Caching.DistributedCache
2.GetAsync(TCacheKey key, Nullable1 hideErrors, Boolean considerUow, CancellationToken token)
All cancelled operations on server side somehow have to do with this "ORA-01013: User requested cancel of current operation".
I have run it via curl and the request was successful. But the second request via Angular app was successful, too... So I am not sure this test helps us in some way...
Front-end is an Angular app. The link to the log is shared (sent to your email).
I would still take my chance to troubleshoot and try to eliminate the given issue. Especially taking into consideration, that this error has appeared very rarely in v8.x and now - every time I invoke a request.
 
                                