Error when adding multiple images using File Dropper

1
I am using the file dropper widget to allow the user to add multiple images to be saved as System.Image objects in the database. Sometimes when uploading multiple images (usually the first attempt at this) I get an error displayed saying ‘Error saving files! Error.’ Below is the stack trace displayed in the console when I select multiple images: com.mendix.core.CoreRuntimeException: Failed to commit     at com.mendix.basis.component.CommitHandler.commit(CommitHandler.scala:151) Caused by: com.mendix.core.CoreRuntimeException: com.mendix.core.CoreRuntimeException: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreRuntimeException: Exception occurred in action '{"type":"CommitAction"}', all database changes executed by this action were rolled back     at com.mendix.basis.actionmanagement.ActionManagerBase.executeInTransactionSync(ActionManagerBase.java:123) Caused by: com.mendix.core.CoreRuntimeException: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreRuntimeException: Exception occurred in action '{"type":"CommitAction"}', all database changes executed by this action were rolled back     at com.mendix.basis.actionmanagement.ActionManagerBase.executeSync(ActionManagerBase.java:156) Caused by: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreRuntimeException: Exception occurred in action '{"type":"CommitAction"}', all database changes executed by this action were rolled back     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:30) Caused by: com.mendix.core.CoreRuntimeException: Exception occurred in action '{"type":"CommitAction"}', all database changes executed by this action were rolled back     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.processErrorState(CoreActionHandlerImpl.scala:151) Caused by: com.mendix.systemwideinterfaces.connectionbus.data.UniqueConstraintViolationRuntimeException: Duplicate column value violates its unique constraint: integrity constraint violation: unique constraint or index violation; SYS_PK_10651 table: "dgafamodule$failureanalysis2" (SQL State: 23505, Error Code: -104)     at com.mendix.basis.action.user.CommitAction$$anonfun$commitPersistableObjects$4.applyOrElse(CommitAction.scala:99)     at com.mendix.basis.action.user.CommitAction$$anonfun$commitPersistableObjects$4.applyOrElse(CommitAction.scala:97)     at scala.util.Failure.recoverWith(Try.scala:240)     at com.mendix.basis.action.user.CommitAction.commitPersistableObjects(CommitAction.scala:97)     at com.mendix.basis.action.user.CommitAction.executeAction(CommitAction.scala:61)     at com.mendix.basis.action.user.CommitAction.executeAction(CommitAction.scala:31)     at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:46)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:49)     at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:54)     at com.mendix.basis.actionmanagement.ActionManagerBase$1.execute(ActionManagerBase.java:147)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:26)     at com.mendix.basis.actionmanagement.ActionManagerBase.executeSync(ActionManagerBase.java:152)     at com.mendix.basis.actionmanagement.ActionManagerBase.executeInTransactionSync(ActionManagerBase.java:116)     at com.mendix.basis.component.CommitHandler.$anonfun$storeObjectsAndAutoCommittedObjects$1(CommitHandler.scala:189)     at scala.collection.immutable.List.map(List.scala:250)     at scala.collection.immutable.List.map(List.scala:79)     at com.mendix.basis.component.CommitHandler.storeObjectsAndAutoCommittedObjects(CommitHandler.scala:187)     at com.mendix.basis.component.CommitHandler.commit(CommitHandler.scala:125)     at com.mendix.basis.component.CommitHandler.commit$(CommitHandler.scala:109)     at com.mendix.basis.component.InternalCore.commit(InternalCore.scala:48)     at com.mendix.basis.component.CommitHandler.commitWithEvents(CommitHandler.scala:69)     at com.mendix.basis.component.CommitHandler.commit(CommitHandler.scala:49)     at com.mendix.basis.component.CommitHandler.commit$(CommitHandler.scala:48)     at com.mendix.basis.component.InternalCore.commit(InternalCore.scala:48)     at com.mendix.basis.component.CommitHandler.commit(CommitHandler.scala:25)     at com.mendix.basis.component.CommitHandler.commit$(CommitHandler.scala:25)     at com.mendix.basis.component.InternalCore.commit(InternalCore.scala:48)     at com.mendix.webui.actions.client.RegularClientActions$.commit(RegularClientActions.scala:37)     at com.mendix.webui.actions.client.RegularClientActionWiring.$anonfun$regularClientActionMap$1(RegularClientActionWiring.scala:19)     at com.mendix.webui.actions.client.RegularClientAction$Helpers$.$anonfun$liftEither$1(RegularClientAction.scala:29)     at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.$anonfun$apply$4(RegularClientAction.scala:55)     at com.mendix.webui.requesthandling.helpers.StateHandling.withState(StateHandling.scala:35)     at com.mendix.webui.requesthandling.helpers.StateHandling.withState$(StateHandling.scala:32)     at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.withState(RegularClientAction.scala:45)     at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:53)     at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:45)     at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$3(RegularClientAction.scala:109)     at scala.util.Try$.apply(Try.scala:210)     at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2(RegularClientAction.scala:109)     at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2$adapted(RegularClientAction.scala:107)     at com.mendix.webui.requesthandling.helpers.ContextHandling.$anonfun$inContext$5(ContextHandling.scala:47)     at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)     at com.mendix.basis.actionmanagement.IMonitoredAction$$anon$1.execute(IMonitoredAction.scala:47)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:26)     at com.mendix.basis.actionmanagement.IMonitoredAction.monitor(IMonitoredAction.scala:49)     at com.mendix.basis.actionmanagement.IMonitoredAction.monitor$(IMonitoredAction.scala:25)     at com.mendix.webui.requesthandling.helpers.ContextHandling$ClientMonitoredAction.monitor(ContextHandling.scala:59)     at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:47)     at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:27)     at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:86)     at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:24)     at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:19)     at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:86)     at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$1(RegularClientAction.scala:107)     at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)     at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest(ProfileHandling.scala:14)     at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest$(ProfileHandling.scala:10)     at com.mendix.webui.actions.client.RegularClientAction.profileRequest(RegularClientAction.scala:86)     at com.mendix.webui.actions.client.RegularClientAction.execute(RegularClientAction.scala:104)     at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:104)     at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:81)     at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:46)     at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:76)     at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:73)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:26)     at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.java:79)     at com.mendix.basis.impl.MxRuntimeImplBase.processRequest(MxRuntimeImplBase.java:953)     at com.mendix.m2ee.appcontainer.server.handler.RuntimeServlet.service(RuntimeServlet.java:42)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763)     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1631)     at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618)     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:549)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1369)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:489)     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1284)     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)     at org.eclipse.jetty.server.Server.handle(Server.java:501)     at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)     at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:272)     at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)     at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)     at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)     at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)     at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)     at java.base/java.lang.Thread.run(Thread.java:834)   Usually, the second attempt to add the files works fine. The images are usually PNGs and the maximum file size set is 5MB, though these images rarely ever come close to that size. What could be causing this error? Thanks and regards
asked
5 answers
0

The stacktrace indicates that there is a unique constraint or index violation:

Duplicate column value violates its unique constraint: integrity constraint violation: unique constraint or index violation; SYS_PK_10651 table: "dgafamodule$failureanalysis2" (SQL State: 23505, Error Code: -104)

Any validations on the entity that might lead to this error?

Or there is an issue in the indexes for the entity and if there are no specific indexes added there might be an issue with the entity index data itself. In the last case the index should be rebuild or at least test the issue with a new entity to verify that this is the issue.

answered
0

Hi Mario, 

I solved this problem. You can read my answer here: https://forum.mendix.com/link/questions/98324

answered
0

The UniqueConstraintViolations that we've been getting at various locations in our application, especially after storing content in FileDocuments after a long web service call, have been analysed by Mendix. They refer to network problems and TCP resets.

Could you let us know whether committing objects separately in-between solved the problem?

answered
0

Found a solution that worked for me. I got this and then realized that I had a data grid as a starting point where I clicked NEW to create the context object that held the files. When you do this.. the context object is NOT COMMITTED yet. When you try to upload files, there must be a problem with trying to find an ID of the context object that causes this “unique contstraint violation” error. Once I fixed it so the context was committed, it worked

answered
0

Thanks for the above Answers.

answered