Symptoms
Package will not deploy to production environment. Post deployment fails and gives the following error:
Dependency could not be created: System.Exception: Dependency could not be created. Parent does not exist in this environment. Check Data property of exception.
PandD log shows the following:
Fail test_Package
Dependency could not be created: System.Exception: Dependency could not be created. Parent does not exist in this environment. Check Data property of exception. at SourceCode.Hosting.Services.DependancyService.VerifyObjects(List`1 parents) at SourceCode.Hosting.Services.DependancyService.CreateDepenancyBatch(Dictionary`2 depenancyBatch) System.Exception: Dependency could not be created: System.Exception: Dependency could not be created. Parent does not exist in this environment. Check Data property of exception.
at SourceCode.Hosting.Services.DependancyService.VerifyObjects(List`1 parents)
at SourceCode.Hosting.Services.DependancyService.CreateDepenancyBatch(Dictionary`2 depenancyBatch) ---> System.Exception: Dependency could not be created. Parent does not exist in this environment. Check Data property of exception.
at SourceCode.Hosting.Services.DependancyService.VerifyObjects(List`1 parents)
at SourceCode.Hosting.Services.DependancyService.CreateDepenancyBatch(Dictionary`2 depenancyBatch)
--- End of inner exception stack trace ---
at SourceCode.Runtime.Services.SmartObjects.ServerAccessLayer.CreateDependencies()
at SourceCode.Runtime.Services.SmartObjects.DeploymentCollatorService.PostDeploy(DeploymentPlan plan)
at SourceCode.Deployment.Runtime.ServerSession.BeginDeploy() 00:00:00.0035149
Diagnoses
Production and development environment do not match. Since it says that a parent of some artifact does not exist most likely there might be a Service Instance that is not included in the package or if there is an association between two smartobjects one of them might not be present in the package or on the server.
It was discovered that the source of the issue was that that we were attempting to merge two oracle smartobjects and have them use the merged smartobject on the production server. Basically we had SmartObjects for Schema A and Schema B on development. On Production we had a smartobject for schema C which contained both Schema A and B. We were attempting to have PandD deal with the merge but this is not possible by design and also not a best practice.
Resolution
If we instead did not attempt to point both smartobjects to that merged oracle smartobject we did not receive the error. PandD was done and had the smartobjects point to schema A and Schema B smartobjects separately. The PandD tool is not built to have multiple smartobjects point to an individual one. This is not a best practice and it is recommended that if we want to do the merge we should do this on dev and Production separately. After that PandD could be done and we would point Schema C Dev to Schema C Prod.