React client fails: Sequence contains more than one matching element

0
When I change the runtime settings of one of our projects to use React client I get the following error when building the package or running locally: "Sequence contains more than one matching element." The modeler has no errors. The stacktrace gives no clue about what to look for or where, although the process seems to fail at the "exporting pages" stage. Same thing happened when I created a branch and used 11.12.2. How can I debug this and what should I be looking for? Full stracktrace: System.AggregateException: One or more errors occurred. (Sequence contains more than one matching element) (Sequence contains more than one matching element) ---> System.InvalidOperationException: Sequence contains more than one matching element at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException() at Mendix.Modeler.WebUI.Export.Web.ModernWebPageWriter.<Write>b__5_0(Placeholder placeholder) in Mendix.Modeler.WebUI.Export\Web\ModernWebPageWriter.cs:line 45 at System.Linq.Enumerable.IEnumerableWhereSelectIterator`2.ToList() at Mendix.Modeler.WebUI.Export.Web.ModernWebPageWriter.Write() in Mendix.Modeler.WebUI.Export\Web\ModernWebPageWriter.cs:line 43 at Mendix.Modeler.Common.ResolveCache.TrackResolves(Action code) in Mendix.Modeler.Core\Common\Problems\ResolveCache.cs:line 142 at Mendix.Modeler.WebUI.Export.Web.ModernWebExporter.<>c__DisplayClass14_0`1.<WriteForm>b__0() in Mendix.Modeler.WebUI.Export\Web\ModernWebExporter.cs:line 177 at Mendix.Modeler.WebUI.Export.Web.ModernWebExporter.WriteForm[T](IProject project, String filePath, Func`2 factory) in Mendix.Modeler.WebUI.Export\Web\ModernWebExporter.cs:line 170 at Mendix.Modeler.WebUI.Export.Web.ModernWebExporter.<>c__DisplayClass13_0.<Export>b__2(IDocument document) in Mendix.Modeler.WebUI.Export\Web\ModernWebExporter.cs:line 108 at Mendix.Modeler.Projects.Changes.ChangedDocumentsProcessor`1.<>c__DisplayClass9_0.<ProcessChangedDocuments>g__DoProcess|3(IDocument document) in Mendix.Modeler.Core\Projects\Changes\ChangedDocumentsProcessor.cs:line 85 at System.Linq.Parallel.ForAllOperator`1.ForAllEnumerator`1.MoveNext(TInput& currentElement, Int32& currentKey) at System.Linq.Parallel.ForAllSpoolingTask`2.SpoolingWork() at System.Linq.Parallel.SpoolingTaskBase.Work() at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) --- End of inner exception stack trace --- at System.Linq.Parallel.QueryTaskGroupState.QueryEnd(Boolean userInitiatedDispose) at System.Linq.Parallel.PartitionedStreamMerger`1.Receive[TKey](PartitionedStream`2 partitionedStream) at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.ChildResultsRecipient.Receive[TKey](PartitionedStream`2 inputStream) at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient) at System.Linq.Parallel.ForAllOperator`1.RunSynchronously() at Mendix.Modeler.Projects.Changes.ChangedDocumentsProcessor`1.ProcessChangedDocuments(IProject project, ProjectChanges projectChanges, Func`2 processDocument) in Mendix.Modeler.Core\Projects\Changes\ChangedDocumentsProcessor.cs:line 70 at Mendix.Modeler.WebUI.Export.Web.ModernWebExporter.<>c__DisplayClass13_0.<Export>b__1() in Mendix.Modeler.WebUI.Export\Web\ModernWebExporter.cs:line 70 at Mendix.Modeler.Undo.GlobalTransactionManager.<>c__DisplayClass22_0.<JustDo>b__0() in Mendix.Modeler.Undo\GlobalTransactionManager.cs:line 150 at Mendix.Modeler.Undo.GlobalTransactionManager.JustDo[T](Func`1 action) in Mendix.Modeler.Undo\GlobalTransactionManager.cs:line 169 at Mendix.Modeler.Undo.GlobalTransactionManager.JustDo(Action action) in Mendix.Modeler.Undo\GlobalTransactionManager.cs:line 148 at Mendix.Modeler.WebUI.Export.Web.ModernWebExporter.Export(IProject project, IProgressInfo info, DeploymentSettings settings, Boolean updateRunningProject) in Mendix.Modeler.WebUI.Export\Web\ModernWebExporter.cs:line 68 at Mendix.Modeler.WebUI.Export.Web.ModernWebUIDeploymentWorker.ExportPages(IProject project, IProgressInfo info, DeploymentSettings settings, Boolean updateRunningProject) in Mendix.Modeler.WebUI.Export\Web\ModernWebUIDeploymentWorker.cs:line 226 at Mendix.Modeler.WebUI.Export.Web.ModernWebUIDeploymentWorker.Export(IProject project, IProgressInfo info, WebUIProjectSettingsPart webUISettings, DeploymentSettings settings, Boolean updateRunningProject) in Mendix.Modeler.WebUI.Export\Web\ModernWebUIDeploymentWorker.cs:line 127 at Mendix.Modeler.WebUI.Export.Web.ModernWebUIDeploymentWorker.DoWork(DeploymentPhase phase, IProject project, DeploymentSettings settings, IProgressInfo info) in Mendix.Modeler.WebUI.Export\Web\ModernWebUIDeploymentWorker.cs:line 98 at Mendix.Modeler.Projects.ProjectStructureManager.Do[T](IProject projectOverride, Func`1 action) in Mendix.Modeler.Core\Projects\ProjectStructureManager.cs:line 63 at Mendix.Modeler.Projects.ProjectStructureManager.DoWithOverride(IProject projectOverride, Action action) in Mendix.Modeler.Core\Projects\ProjectStructureManager.cs:line 38 at Mendix.Modeler.Deployment.DeploymentProcessBuilder.<>c__DisplayClass18_0.<AddBuildStepWithOverride>b__0(IProgressInfo info) in Mendix.Modeler.Deployment\DeploymentProcessBuilder.cs:line 280 at Mendix.Modeler.Deployment.FileIOExceptionHandlingProcess.CatchDiskException(Action action) in Mendix.Modeler.Deployment\FileIOExceptionHandlingProcess.cs:line 36 at Mendix.Modeler.Deployment.FileIOExceptionHandlingProcess.<>c__DisplayClass2_0.<AddStep>b__0(IProgressInfo info) in Mendix.Modeler.Deployment\FileIOExceptionHandlingProcess.cs:line 26 at Mendix.Modeler.UIFramework.Progress.ProcessRunner.RunStep(IStep step) in Mendix.Modeler.UIFramework\Progress\ProcessRunner.cs:line 240 at Mendix.Modeler.UIFramework.Progress.ProcessRunner.OnDoWork(Object sender, DoWorkEventArgs e) in Mendix.Modeler.UIFramework\Progress\ProcessRunner.cs:line 157 at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument) --- End of stack trace from previous location --- at Mendix.Modeler.UIFramework.Progress.ProcessRunner.Run() in Mendix.Modeler.UIFramework\Progress\ProcessRunner.cs:line 108 at Mendix.Modeler.Deployment.Deployer.RunProcess(IProcess process, DeploymentStep deploymentStep, Boolean isPackage) in Mendix.Modeler.Deployment\Deployer.cs:line 104 ---> (Inner Exception #1) System.InvalidOperationException: Sequence contains more than one matching element at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException() at Mendix.Modeler.WebUI.Export.Web.ModernWebPageWriter.<Write>b__5_0(Placeholder placeholder) in Mendix.Modeler.WebUI.Export\Web\ModernWebPageWriter.cs:line 45 at System.Linq.Enumerable.IEnumerableWhereSelectIterator`2.ToList() at Mendix.Modeler.WebUI.Export.Web.ModernWebPageWriter.Write() in Mendix.Modeler.WebUI.Export\Web\ModernWebPageWriter.cs:line 43 at Mendix.Modeler.Common.ResolveCache.TrackResolves(Action code) in Mendix.Modeler.Core\Common\Problems\ResolveCache.cs:line 142 at Mendix.Modeler.WebUI.Export.Web.ModernWebExporter.<>c__DisplayClass14_0`1.<WriteForm>b__0() in Mendix.Modeler.WebUI.Export\Web\ModernWebExporter.cs:line 177 at Mendix.Modeler.WebUI.Export.Web.ModernWebExporter.WriteForm[T](IProject project, String filePath, Func`2 factory) in Mendix.Modeler.WebUI.Export\Web\ModernWebExporter.cs:line 170 at Mendix.Modeler.WebUI.Export.Web.ModernWebExporter.<>c__DisplayClass13_0.<Export>b__2(IDocument document) in Mendix.Modeler.WebUI.Export\Web\ModernWebExporter.cs:line 108 at Mendix.Modeler.Projects.Changes.ChangedDocumentsProcessor`1.<>c__DisplayClass9_0.<ProcessChangedDocuments>g__DoProcess|3(IDocument document) in Mendix.Modeler.Core\Projects\Changes\ChangedDocumentsProcessor.cs:line 85 at System.Linq.Parallel.ForAllOperator`1.ForAllEnumerator`1.MoveNext(TInput& currentElement, Int32& currentKey) at System.Linq.Parallel.ForAllSpoolingTask`2.SpoolingWork() at System.Linq.Parallel.SpoolingTaskBase.Work() at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)<---
asked
1 answers
1

The error seemed to be related to pages and the mentioning of placeholder pointed to layouts. So I decided to bulk replace our custom layouts with Atlas layouts. And one of the bulk replacements failed with this exact same error. This happened on a custom layout with layout type "pop-up". When I changed that to "modal pop-up" I got no more errors running the project.

Now why the layout type was an issue is unclear. You can use pages with a pop-up type layout in a React project, so I'm not sure about the exact conditions for the failure. Maybe Mendix support is willing to take a look, I'm in contact with them. But maybe this solution also works for others reading this post.

answered