It's possible to select a child node as Login and Error pages under a role based protected parent node when doing so a transfer or restore is not possible and the environment will throw a Umbraco.Deploy.Exceptions.GraphException with message: Encountered a cyclic dependency.
Error message
You can select a child node as Login and Error pages under a role based protected parent node.
an example of this is:
Tested on the latest version of Umbraco and deploy:
Umbraco 8.6.3
Deploy 3.4.5
Full error message:
EXCEPTION:
Umbraco.Deploy.Exceptions.GraphException: Encountered a cyclic dependency.
at Umbraco.Deploy.Core.TopoGraph`2.Visit(TItem item, ISet`1 visited, TItem[] sorted, Int32& index, Int32 incr, Boolean throwOnCycle, Boolean throwOnMissing)
at Umbraco.Deploy.Core.TopoGraph`2.Visit(TItem item, ISet`1 visited, TItem[] sorted, Int32& index, Int32 incr, Boolean throwOnCycle, Boolean throwOnMissing)
at Umbraco.Deploy.Core.TopoGraph`2.Visit(TItem item, ISet`1 visited, TItem[] sorted, Int32& index, Int32 incr, Boolean throwOnCycle, Boolean throwOnMissing)
at Umbraco.Deploy.Core.TopoGraph`2.GetSortedItems(Boolean throwOnCycle, Boolean throwOnMissing, Boolean reverse)
at Umbraco.Deploy.Environments.CurrentEnvironment.CreatePackage(Guid sessionId, Manifest manifest)
at Umbraco.Deploy.Environments.CurrentEnvironment.CreatePackageAsync(Guid sessionId, Manifest manifest, CancellationToken token)
at Umbraco.Deploy.Work.WorkItems.DeployRestoreWorkItemBase.<CreatePackageOnSource>d__20.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at Umbraco.Deploy.Work.WorkItems.SourceDeployWorkItem.<ProceedToPackage>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Umbraco.Deploy.Work.WorkItems.SourceDeployWorkItem.<ExecuteAsyncSub>d__16.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Umbraco.Deploy.Work.WorkItems.SourceDeployWorkItem.<ExecuteAsyncSub>d__16.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Umbraco.Deploy.Work.WorkItems.SourceDeployWorkItem.<ExecuteAsync>d__15.MoveNext()
Steps to reproduce
Then the Child nodes will now also show as having role based protection:
You will then get the error:Umbraco.Deploy.Exceptions.GraphException with message: Encountered a cyclic dependency.
Expected the content to be transfered to the next environment
Actual resultThe transfer fails with an error message and the content will not be transfered.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4