umbraco / Umbraco.Deploy.Issues

1 stars 0 forks source link

Nested list views cause "Queue for Transfer" 500 Error #185

Closed jgb-ibsa closed 10 months ago

jgb-ibsa commented 10 months ago

We have a content tree structure for biographies as follows:

Home (Root)

When selecting "Queue for Transfer" on the Professional Page, the backoffice makes a request to /umbraco/backoffice/deploy/ui/IsRegisteredEntityWithPermissionToTransfer with the following payload:

{"treeAlias":"content","routePath":null}

This call returns a 500 Internal Server Error with the following payload:

{
    "Type": "System.InvalidOperationException",
    "Title": "An error has occurred.",
    "Status": 500,
    "Detail": "The RoutePath field is required.",
    "Instance": null,
    "Extensions": {
        "StackTrace": "   at Umbraco.Deploy.UI.Controllers.UiControllerBase.ValidateModel(Boolean checkLicense)\n   at Umbraco.Deploy.UI.Controllers.UiControllerBase.IsRegisteredEntityWithPermissionToTransfer(TreeMenuModel model)\n   at lambda_method2645(Closure, Object, Object[])\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()\n--- End of stack trace from previous location ---\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()\n--- End of stack trace from previous location ---\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)"
    }
}

The Professional Page can still be transferred using the "Transfer Now" option or by disabling the list view on "Professionals" page.

Reproduction

Bug summary

Multiple nested pages with list view enabled cannot be queued for transfer.

Steps to reproduce

Create a tree structure as shown above with multiple nested list views and try to queue for transfer.

Expected result

routePath value should be populated and all pages should allow Queue for Transfer.

Actual result

When selecting "Queue for Transfer" on the Professional Page, the backoffice makes a request to /umbraco/backoffice/deploy/ui/IsRegisteredEntityWithPermissionToTransfer. This call returns a 500 Internal Server Error with the following payload:


This item has been added to our backlog AB#33960

AndyButland commented 10 months ago

Thanks for the report and clear replication steps @john-ibsa - I've been able to reproduce the issue and have found a fix, that we'll make available in the next releases.