Open Closed

GDPR Module Error 405 #4694


User avatar
0
manuel42 created
  • ABP Framework version: v6.0.3
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

Hi, we have deployed a application and now we always got "Business Exception" when we request data from the gdpr module. This is the stacktrace from the logs

2023-03-13 11:23:26.833 +01:00 [WRN] ---------- RemoteServiceErrorInfo ----------
{
  "code": "Volo.Abp.Gdpr:010001",
  "message": "Exception of type 'Volo.Abp.BusinessException' was thrown.",
  "details": "BusinessException: Exception of type 'Volo.Abp.BusinessException' was thrown.\r\n",
  "data": null,
  "validationErrors": null
}

2023-03-13 11:23:26.833 +01:00 [WRN] Exception of type 'Volo.Abp.BusinessException' was thrown.
Volo.Abp.BusinessException: Exception of type 'Volo.Abp.BusinessException' was thrown.
   at Volo.Abp.Gdpr.GdprRequestAppService.PrepareUserDataAsync()
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Authorization.AuthorizationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Auditing.AuditingInterceptor.ProceedByLoggingAsync(IAbpMethodInvocation invocation, IAuditingHelper auditingHelper, IAuditLogScope auditLogScope)
   at Volo.Abp.Auditing.AuditingInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at lambda_method3907(Closure , Object )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableResultExecutor.Execute(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.&lt;InvokeNextActionFilterAsync&gt;g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.&lt;InvokeInnerFilterAsync&gt;g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.&lt;InvokeNextExceptionFilterAsync&gt;g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
2023-03-13 11:23:26.924 +01:00 [WRN] Code:Volo.Abp.Gdpr:010001
2023-03-13 11:23:26.924 +01:00 [WRN] Details:
2023-03-13 11:23:26.924 +01:00 [ERR] ExceptionSubscriber
Volo.Abp.BusinessException: Exception of type 'Volo.Abp.BusinessException' was thrown.
   at Volo.Abp.Gdpr.GdprRequestAppService.PrepareUserDataAsync()
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Authorization.AuthorizationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Auditing.AuditingInterceptor.ProceedByLoggingAsync(IAbpMethodInvocation invocation, IAuditingHelper auditingHelper, IAuditLogScope auditLogScope)
   at Volo.Abp.Auditing.AuditingInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at lambda_method3907(Closure , Object )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.&lt;InvokeActionMethodAsync&gt;g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
2023-03-13 11:23:26.929 +01:00 [INF] Executing ObjectResult, writing value of type 'Volo.Abp.Http.RemoteServiceErrorResponse'.
2023-03-13 11:23:26.930 +01:00 [INF] Executed action Volo.Abp.Gdpr.GdprRequestController.PrepareUserDataAsync (Volo.Abp.Gdpr.HttpApi) in 266.5347ms

How we can fix this error?


18 Answer(s)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    Can you reproduce it on your local?

    How can I reproduce it with a new template project?

  • User Avatar
    0
    manuel42 created

    No, local it works fine. Are there any configurations we miss or we need to change for azure? Because the exception says nothing about the root cause.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    Please share an online URL I will test it. Please share the full logs(Logs.txt)

    liming.ma@volosoft.com

  • User Avatar
    0
    manuel42 created

    I have send you an email with the logs from yesterday and login credentials. Thank you for your help.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    This seems to be a problem with the Clock or time zone. Do you have any relevant changes?

  • User Avatar
    0
    manuel42 created

    No we changed nothing of the default configs. We also did not change the culture settings. Anything we can do to fix this problem?

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    Please add the below code to your project and reproduce the problem and share the Logs.txt

    [Authorize]
    [Dependency(ReplaceServices = true)]
    [ExposeServices(typeof(MyGdprRequestAppService), typeof(IGdprRequestAppService), typeof(GdprRequestAppService))]
    public class MyGdprRequestAppService : GdprRequestAppService
    {
        public MyGdprRequestAppService(
            IGdprRequestRepository gdprRequestRepository,
            IDistributedEventBus eventBus,
            IOptions<AbpGdprOptions> gdprOptions,
            IDistributedCache<DownloadTokenCacheItem, string> downloadTokenCache) :
            base(gdprRequestRepository, eventBus, gdprOptions, downloadTokenCache)
        {
        }
    
    
        public async override Task PrepareUserDataAsync()
        {
            var latestRequestTime = await GdprRequestRepository.FindLatestRequestTimeOfUserAsync(CurrentUser.GetId());
    
            var isNewRequestAllowedInternal = latestRequestTime.HasValue && Clock.Now - latestRequestTime > GdprOptions.RequestTimeInterval;
            if (!isNewRequestAllowedInternal)
            {
                Logger.LogError($"Clock.Now: {Clock.Now} - latestRequestTime: {latestRequestTime} - RequestTimeInterval: {GdprOptions.RequestTimeInterval}");
                throw new BusinessException(GdprErrorCodes.NotAllowedForRequest);
            }
    
            var gdprRequest = new GdprRequest(GuidGenerator.Create(), CurrentUser.GetId(), Clock.Now.AddMinutes(GdprOptions.MinutesForDataPreparation));
    
            await GdprRequestRepository.InsertAsync(gdprRequest);
    
            await EventBus.PublishAsync(new GdprUserDataRequestedEto
                {
                    UserId = CurrentUser.GetId(),
                    RequestId = gdprRequest.Id
                }
            );
        }
    
        [AllowAnonymous]
        public async override Task<IRemoteStreamContent> GetUserDataAsync(Guid id, string token)
        {
            var downloadToken = await DownloadTokenCache.GetAsync(token);
            if (downloadToken == null || downloadToken.RequestId != id)
            {
                throw new AbpAuthorizationException();
            }
    
            await DownloadTokenCache.RemoveAsync(token);
    
            var request = await GdprRequestRepository.GetAsync(id, true);
            if (Clock.Now < request.ReadyTime)
            {
                Logger.LogError($"Clock.Now: {Clock.Now} - ReadyTime: {request.ReadyTime}");
                throw new BusinessException(GdprErrorCodes.DataNotPreparedYet)
                    .WithData("GdprDataReadyTime", request.ReadyTime.ToShortTimeString());
            }
    
            using (var memoryStream = new MemoryStream())
            {
                using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
                {
                    var infos = request.Infos;
                    foreach (var info in infos)
                    {
                        var file = archive.CreateEntry(GuidGenerator.Create() + ".json", CompressionLevel.Fastest);
                        using (var entry = file.Open())
                        {
                            var byteArr = Encoding.UTF8.GetBytes(info.Data);
                            await entry.WriteAsync(byteArr, 0, byteArr.Length);
                        }
                    }
                }
                memoryStream.Seek(0, SeekOrigin.Begin);
    
                var ms = new MemoryStream();
                await memoryStream.CopyToAsync(ms);
                ms.Seek(0, SeekOrigin.Begin);
    
                return new RemoteStreamContent(ms, "PersonalData.zip", "application/zip");
            }
        }
    }
    
  • User Avatar
    0
    manuel42 created

    Hi, replaced the service with your code and I debugged it. I have reduced the request time and It seems to work correct, but the exception message displays no useful information should there any default exception text when the request waiting time interval is not over?

    2023-03-14 15:38:37.215 +01:00 [ERR] Clock.Now: 14.03.2023 15:38:37 - latestRequestTime: 14.03.2023 10:34:56 - RequestTimeInterval: 1.00:00:00
    2023-03-14 15:38:38.402 +01:00 [WRN] ---------- RemoteServiceErrorInfo ----------
    {
      "code": "Volo.Abp.Gdpr:010001",
      "message": "Exception of type 'Volo.Abp.BusinessException' was thrown.",
      "details": "BusinessException: Exception of type 'Volo.Abp.BusinessException' was thrown.\r\n",
      "data": null,
      "validationErrors": null
    }
    
    2023-03-14 15:38:38.402 +01:00 [WRN] Exception of type 'Volo.Abp.BusinessException' was thrown.
    Volo.Abp.BusinessException: Exception of type 'Volo.Abp.BusinessException' was thrown.
       at Scales.MyGdprRequestAppService.PrepareUserDataAsync() in C:\Users\ManuelKrump\source\repos\Scales\src\Scales.Application\MyGdprRequestAppService .cs:line 47
       at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
       at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
       at Volo.Abp.Authorization.AuthorizationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
       at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
       at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
       at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
       at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
       at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
       at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
       at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
       at Volo.Abp.Auditing.AuditingInterceptor.ProceedByLoggingAsync(IAbpMethodInvocation invocation, IAuditingHelper auditingHelper, IAuditLogScope auditLogScope)
       at Volo.Abp.Auditing.AuditingInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
       at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
       at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
       at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
       at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
       at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
       at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
       at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
       at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
       at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
       at lambda_method3908(Closure , Object )
       at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableResultExecutor.Execute(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.&lt;InvokeNextActionFilterAsync&gt;g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.&lt;InvokeInnerFilterAsync&gt;g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.&lt;InvokeNextExceptionFilterAsync&gt;g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
    2023-03-14 15:38:38.406 +01:00 [WRN] Code:Volo.Abp.Gdpr:010001
    2023-03-14 15:38:38.406 +01:00 [WRN] Details:
    2023-03-14 15:38:38.406 +01:00 [ERR] ExceptionSubscriber
    Volo.Abp.BusinessException: Exception of type 'Volo.Abp.BusinessException' was thrown.
       at Scales.MyGdprRequestAppService.PrepareUserDataAsync() in C:\Users\ManuelKrump\source\repos\Scales\src\Scales.Application\MyGdprRequestAppService .cs:line 47
       at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
       at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
       at Volo.Abp.Authorization.AuthorizationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
       at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
       at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
       at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
       at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
       at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
       at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
       at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
       at Volo.Abp.Auditing.AuditingInterceptor.ProceedByLoggingAsync(IAbpMethodInvocation invocation, IAuditingHelper auditingHelper, IAuditLogScope auditLogScope)
       at Volo.Abp.Auditing.AuditingInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
       at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
       at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
       at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
       at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
       at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
       at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
       at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
       at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
       at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
       at lambda_method3908(Closure , Object )
       at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.&lt;InvokeActionMethodAsync&gt;g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
    2023-03-14 15:38:38.408 +01:00 [INF] Executing ObjectResult, writing value of type 'Volo.Abp.Http.RemoteServiceErrorResponse'.
    2023-03-14 15:38:38.409 +01:00 [INF] Executed action Volo.Abp.Gdpr.GdprRequestController.PrepareUserDataAsync (Volo.Abp.Gdpr.HttpApi) in 39279.0581ms
    2023-03-14 15:38:38.409 +01:00 [INF] Executed endpoint 'Volo.Abp.Gdpr.GdprRequestController.PrepareUserDataAsync (Volo.Abp.Gdpr.HttpApi)'
    2023-03-14 15:38:39.878 +01:00 [INF] Request finished HTTP/2 POST https://localhost:44323/api/gdpr/requests/prepare-data application/json 0 - 403 - application/json;+charset=utf-8 40753.4669ms
    
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    I will share a solution.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    For Volo.Abp.Gdpr:010001

    You can change the RequestTimeInterval of AbpGdprOptions

    RequestTimeInterval (default: 1 day): It uses to indicate the allowed request time interval. You can configure this property if you want to increase or decrease the personal data request interval. By default, users can request their personal data once a day.

    https://docs.abp.io/en/commercial/latest/modules/gdpr#abpgdproptions

  • User Avatar
    0
    manuel42 created

    Thank you. How can I create a error message for

    Volo.Abp.Gdpr:010001
    

    because the user need to know why he can not make a request.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    I'm confirming that.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    API will localize error messages.

  • User Avatar
    0
    manuel42 created

    But there is no message in the exception

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    How can I reproduce this in a new template project?

  • User Avatar
    0
    manuel42 created

    We have set this options. Add this to the Web project and you will got no error message

    Configure<AbpExceptionHandlingOptions>(options =>
    {
        options.SendExceptionsDetailsToClients = true;
        options.SendStackTraceToClients = false;
    });
    
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    It's not recommended to set SendExceptionsDetailsToClientsto true on the product environment.

  • User Avatar
    0
    manuel42 created

    okay, we will remove this options. thank you for your help.

Made with ❤️ on ABP v9.1.0-preview. Updated on November 01, 2024, 05:35