Closed paulsterling closed 6 months ago
That sounds like it would be the case if you didn't have the Umbraco.Forms.Deploy
package installed. This should be there on Cloud projects of course - and I've just verified it is for a new one and that I can restore forms - but please could you double-check it's referenced in your .csproj
file?
Hi @AndyButland -
I can confirm the project has Umbraco.Forms.Deploy
referenced but the issue persists. One note about these projects (we see the same behavior for two of our cloud projects) is that these were upgraded from v12 > v13. When we did the upgrade the v12 reference to Umbraco.Deploy.Forms v12.1.3
was still present in .csproj
and we manually updated the package reference to Umbraco.Forms.Deploy
. A third project, also upgraded v12 > v13, without reference to Umbraco.Forms.Deploy
in .csproj
does not run into this issue - that project has no Forms in use so I expect that is the reason.
At the moment, the workaround by adding "ExcludedEntityTypes": [ "forms-form" ]
is allowing us to continue.
.csproj
...
<PackageReference Include="Umbraco.Cloud.Cms.PublicAccess" Version="13.0.0" />
<PackageReference Include="Umbraco.Cloud.Identity.Cms" Version="13.0.0" />
<PackageReference Include="Umbraco.Cloud.StorageProviders.AzureBlob" Version="13.0.0" />
<PackageReference Include="Umbraco.Cms" Version="13.1.1" />
<PackageReference Include="Umbraco.Cms.Core" Version="13.1.1" />
<PackageReference Include="Umbraco.Cms.Web.BackOffice" Version="13.1.1" />
<PackageReference Include="Umbraco.Cms.Web.Common" Version="13.1.1" />
<PackageReference Include="Umbraco.Cms.Web.Website" Version="13.1.1" />
<PackageReference Include="Umbraco.Deploy.Cloud" Version="13.0.4" />
<PackageReference Include="Umbraco.Deploy.Infrastructure" Version="13.0.4" />
<PackageReference Include="Umbraco.Deploy.Contrib" Version="13.0.0" />
<PackageReference Include="Umbraco.Forms" Version="13.0.2" />
<PackageReference Include="Umbraco.Forms.Core.Providers" Version="13.0.2" />
<PackageReference Include="Umbraco.Forms.Deploy" Version="13.0.0" />
...
Deploy Log
4cdb3077 - Executing, 10%
4cdb3077 - Executing, 10% - Get remote session
4cdb3077 - Executing, 20% - Create manifest on source
4cdb3077 - Executing, 80% - Exception!
4cdb3077 - Executing, 80% - Abort remote session
4cdb3077 - Executing, 80% - Restore caches and indexes
4cdb3077 - Failed, 80% - Total time 00:00:02.706.
-- EXCEPTION ---------------------------------------------------
(proper exception traces at the end of this log)
System.NotSupportedException: No connector registered for entity type "forms-form".
Umbraco.Deploy.Infrastructure.Exceptions.RemoteApiException: The remote API has thrown an exception.
----------------------------------------------------------------
EXCEPTION:
Umbraco.Deploy.Infrastructure.Exceptions.RemoteApiException: The remote API has thrown an exception.
at Umbraco.Deploy.Infrastructure.Http.DeployHttpClient.SucceedOrThrow(HttpResponseMessage result, CancellationToken token)
at Umbraco.Deploy.Infrastructure.Http.DeployHttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken token)
at Umbraco.Deploy.Infrastructure.Http.DeployHttpClient.SendAsync(HttpRequestMessage request, CancellationToken token)
at Umbraco.Deploy.Infrastructure.Environments.RemoteUmbracoEnvironment.WaitAction(Guid sessionId, JsonSerializerSettings serializerSettings, String action, CancellationToken token)
at Umbraco.Deploy.Infrastructure.Environments.RemoteUmbracoEnvironment.CreateManifestAsync(Guid sessionId, IEnumerable`1 ranges, IEnumerable`1 exclude, CancellationToken token)
at Umbraco.Deploy.Infrastructure.Work.WorkItems.DeployRestoreWorkItemBase.CreateManifestOnSource(IEnumerable`1 ranges, IEnumerable`1 exclude)
at Umbraco.Deploy.Infrastructure.Work.WorkItems.TargetPartialRestoreWorkItem.Proceed()
at Umbraco.Deploy.Infrastructure.Work.WorkItems.TargetPartialRestoreWorkItem.ExecuteAsyncSub(IWorkContext context, List`1 resume, CancellationToken token)
at Umbraco.Deploy.Infrastructure.Work.WorkItems.TargetPartialRestoreWorkItem.ExecuteAsyncSub(IWorkContext context, List`1 resume, CancellationToken token)
at Umbraco.Deploy.Infrastructure.Work.WorkItems.TargetPartialRestoreWorkItem.ExecuteAsync(IWorkContext context, CancellationToken token)
REMOTE:
System.NotSupportedException: No connector registered for entity type "forms-form".
at Umbraco.Deploy.Infrastructure.Environments.CurrentEnvironment.GetDependencyArtifact(ArtifactDependency dep, DependentArtifactState& dependentArtifactState, String& dependencyName, String& dependencyErrorMessage, IContextCache contextCache)
at Umbraco.Deploy.Infrastructure.Environments.CurrentEnvironment.AddEntries(Manifest manifest, List`1 sigs, IEnumerable`1 items, HashSet`1 exclude, IWorkItem workItem, CancellationToken token)
at Umbraco.Deploy.Infrastructure.Environments.CurrentEnvironment.CreateManifestAsync(Guid sessionId, IEnumerable`1 ranges, IEnumerable`1 exclude, CancellationToken token)
at Umbraco.Deploy.Infrastructure.Environments.CurrentEnvironment.CreateManifest(Guid sessionId, IEnumerable`1 ranges, IEnumerable`1 exclude)
at Umbraco.Deploy.Infrastructure.Environments.EnvironmentController.<>c__DisplayClass18_0.<BeginCreateManifestForRanges>b__1()
at Umbraco.Deploy.Infrastructure.Work.WorkItems.SessionWorkItem.<>c__DisplayClass29_0.<ExecuteAction>b__0(CancellationToken token)
at Umbraco.Deploy.Infrastructure.Work.WorkItems.SessionWorkItem.ExecuteAsync(IWorkContext context, CancellationToken token)
at Umbraco.Deploy.Infrastructure.Work.WorkItems.SessionWorkItem.WaitIdle()
at Umbraco.Deploy.Infrastructure.Environments.EnvironmentController.WaitIdle(SessionActionModel model)
at lambda_method552352(Closure, Object, Object[])
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
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()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
It's a stretch as not sure why this would leave you with no connector registered, but perhaps having upgraded there's still a dll hanging around of the old assembly that's interfering? You could check that via the Kudu tools. Or otherwise, if you could reach out to support we can have someone, perhaps myself, have a look.
Hey @AndyButland
You are correct. The issue is the missing Umbraco.Forms.Deploy.dll
in both the source and destination environments. For whatever reason when we did the upgrade v12 > v13 that dependency was not flagged so it was never added to the project.
I've added to local and deployed > Dev > Live as well as removed the "ExcludedEntityTypes": [ "forms-form" ]
setting and can confirm content Restore and Transfer works as expected.
Closing this issue.
Restoring content from a cloud environment to local fails with the following error:
System.NotSupportedException: No connector registered for entity type "forms-form".
The same error is present for all types of restore operations including importing a Zip export from the cloud environment.
The workaround is to add forms-form to the ExcludedEntityTypes setting in appSettings.json. But, of course, this means Forms are not included in Deploy operations I believe.
Versions CMS 13.1.1 Deploy 13.0.4 Forms 13.0.2
Deploy Log