I performed a fresh backup (248MB) from the old system and restored it to the new instance. However, it still failed to start up correctly. After troubleshooting, I managed to get the whole stack up and running by adding the following to the docker-compose.yml
file and the openremote-manager-1 container becomes healthy after about 15 minutes:
healthcheck:
test: [“CMD”, “curl”, “–fail”, “–silent”, “http://localhost:8080”]
interval: 30s
timeout: 60s
start_period: 1200s # ← 20 minutes
retries: 40
Even though the stack is now running, I am seeing the errors below in the console log. ChatGPT, suggests following command against the PostgreSQL database. I did this a while ago and it seemed to fix this particular issue but not the unhealthy container.
ALTER TABLE asset_datapoint
ADD CONSTRAINT unique_asset_datapoint UNIQUE (entity_id, attribute_name, timestamp);
Does anyone have any thoughts or insights on this? Would adding this unique constraint resolve the issue completely, or is there another underlying problem I should look into?
manager-1 | 2025-04-10 02:29:39.056 WARNING [ContainerExecutor-30 ] .manager.datapoint.AssetDatapointService : Failed to insert/update data point:
manager-1 | org.postgresql.util.PSQLException: ERROR: there is no unique or exclusion constraint matching the ON CONFLICT specification
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2733)
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2420)
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372)
manager-1 | at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517)
manager-1 | at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434)
manager-1 | at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:194)
manager-1 | at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:155)
manager-1 | at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
manager-1 | at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.lambda$upsertValue$1(AbstractDatapointService.java:110)
manager-1 | at org.hibernate.jdbc.WorkExecutor.executeWork(WorkExecutor.java:39)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.lambda$doWork$5(AbstractSharedSessionContract.java:1054)
manager-1 | at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.coordinateWork(JdbcCoordinatorImpl.java:303)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1065)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1053)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.lambda$upsertValue$2(AbstractDatapointService.java:102)
manager-1 | at org.openremote.container.persistence.PersistenceService.lambda$doTransaction$4(PersistenceService.java:420)
manager-1 | at org.openremote.container.persistence.PersistenceService.doReturningTransaction(PersistenceService.java:430)
manager-1 | at org.openremote.container.persistence.PersistenceService.doTransaction(PersistenceService.java:419)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.upsertValue(AbstractDatapointService.java:101)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.upsertValue(AbstractDatapointService.java:98)
manager-1 | at org.openremote.manager.datapoint.AssetDatapointService.onAttributeEvent(AssetDatapointService.java:125)
manager-1 | at org.openremote.manager.event.ClientEventService.lambda$sendToSubscribers$14(ClientEventService.java:399)
manager-1 | at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:891)
manager-1 | at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
manager-1 | at org.openremote.manager.event.ClientEventService.sendToSubscribers(ClientEventService.java:384)
manager-1 | at org.openremote.manager.event.ClientEventService.lambda$configure$13(ClientEventService.java:378)
manager-1 | at org.apache.camel.support.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:65)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:808)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:714)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor.schedule(DefaultReactiveExecutor.java:54)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.lambda$doRun$1(RedeliveryErrorHandler.java:813)
manager-1 | at org.apache.camel.processor.ThreadsProcessor$ProcessCall.run(ThreadsProcessor.java:82)
manager-1 | at io.micrometer.core.instrument.internal.TimedRunnable.run(TimedRunnable.java:49)
manager-1 | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
manager-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
manager-1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
manager-1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
manager-1 | at java.base/java.lang.Thread.run(Thread.java:1583)
manager-1 | 2025-04-10 02:29:39.061 WARNING [ContainerExecutor-30 ] nremote.manager.event.ClientEventService : Event subscriber has thrown an exception: org.openremote.manager.datapoint.AssetDatapointService$$Lambda/0x00007d5bf4babf38@60b63b9a
manager-1 | org.openremote.manager.asset.AssetProcessingException: STATE_STORAGE_FAILED (Failed to insert or update asset data point for attribute: AttributeEvent{timestamp=2025-04-10T00:29:39.029Z, ref=AttributeRef{id=‘52EpjNqTUWC3m7caTwE67s’, name=‘flow’}, realm=kai, source=RulesEngine, valueType=java.lang.Double})
manager-1 | at org.openremote.manager.datapoint.AssetDatapointService.onAttributeEvent(AssetDatapointService.java:127)
manager-1 | at org.openremote.manager.event.ClientEventService.lambda$sendToSubscribers$14(ClientEventService.java:399)
manager-1 | at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:891)
manager-1 | at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
manager-1 | at org.openremote.manager.event.ClientEventService.sendToSubscribers(ClientEventService.java:384)
manager-1 | at org.openremote.manager.event.ClientEventService.lambda$configure$13(ClientEventService.java:378)
manager-1 | at org.apache.camel.support.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:65)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:808)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:714)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor.schedule(DefaultReactiveExecutor.java:54)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.lambda$doRun$1(RedeliveryErrorHandler.java:813)
manager-1 | at org.apache.camel.processor.ThreadsProcessor$ProcessCall.run(ThreadsProcessor.java:82)
manager-1 | at io.micrometer.core.instrument.internal.TimedRunnable.run(TimedRunnable.java:49)
manager-1 | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
manager-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
manager-1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
manager-1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
manager-1 | at java.base/java.lang.Thread.run(Thread.java:1583)
manager-1 | Caused by: java.lang.IllegalStateException: Failed to insert/update data point:
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.lambda$upsertValue$1(AbstractDatapointService.java:114)
manager-1 | at org.hibernate.jdbc.WorkExecutor.executeWork(WorkExecutor.java:39)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.lambda$doWork$5(AbstractSharedSessionContract.java:1054)
manager-1 | at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.coordinateWork(JdbcCoordinatorImpl.java:303)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1065)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1053)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.lambda$upsertValue$2(AbstractDatapointService.java:102)
manager-1 | at org.openremote.container.persistence.PersistenceService.lambda$doTransaction$4(PersistenceService.java:420)
manager-1 | at org.openremote.container.persistence.PersistenceService.doReturningTransaction(PersistenceService.java:430)
manager-1 | at org.openremote.container.persistence.PersistenceService.doTransaction(PersistenceService.java:419)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.upsertValue(AbstractDatapointService.java:101)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.upsertValue(AbstractDatapointService.java:98)
manager-1 | at org.openremote.manager.datapoint.AssetDatapointService.onAttributeEvent(AssetDatapointService.java:125)
manager-1 | … 21 more
manager-1 | Caused by: org.postgresql.util.PSQLException: ERROR: there is no unique or exclusion constraint matching the ON CONFLICT specification
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2733)
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2420)
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372)
manager-1 | at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517)
manager-1 | at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434)
manager-1 | at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:194)
manager-1 | at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:155)
manager-1 | at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
manager-1 | at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.lambda$upsertValue$1(AbstractDatapointService.java:110)
manager-1 | … 33 more
manager-1 | 2025-04-10 02:29:39.074 WARNING [ContainerExecutor-31 ] .manager.datapoint.AssetDatapointService : Failed to insert/update data point:
manager-1 | org.postgresql.util.PSQLException: ERROR: there is no unique or exclusion constraint matching the ON CONFLICT specification
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2733)
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2420)
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372)
manager-1 | at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517)
manager-1 | at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434)
manager-1 | at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:194)
manager-1 | at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:155)
manager-1 | at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
manager-1 | at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.lambda$upsertValue$1(AbstractDatapointService.java:110)
manager-1 | at org.hibernate.jdbc.WorkExecutor.executeWork(WorkExecutor.java:39)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.lambda$doWork$5(AbstractSharedSessionContract.java:1054)
manager-1 | at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.coordinateWork(JdbcCoordinatorImpl.java:303)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1065)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1053)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.lambda$upsertValue$2(AbstractDatapointService.java:102)
manager-1 | at org.openremote.container.persistence.PersistenceService.lambda$doTransaction$4(PersistenceService.java:420)
manager-1 | at org.openremote.container.persistence.PersistenceService.doReturningTransaction(PersistenceService.java:430)
manager-1 | at org.openremote.container.persistence.PersistenceService.doTransaction(PersistenceService.java:419)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.upsertValue(AbstractDatapointService.java:101)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.upsertValue(AbstractDatapointService.java:98)
manager-1 | at org.openremote.manager.datapoint.AssetDatapointService.onAttributeEvent(AssetDatapointService.java:125)
manager-1 | at org.openremote.manager.event.ClientEventService.lambda$sendToSubscribers$14(ClientEventService.java:399)
manager-1 | at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:891)
manager-1 | at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
manager-1 | at org.openremote.manager.event.ClientEventService.sendToSubscribers(ClientEventService.java:384)
manager-1 | at org.openremote.manager.event.ClientEventService.lambda$configure$13(ClientEventService.java:378)
manager-1 | at org.apache.camel.support.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:65)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:808)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:714)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166)
keycloak-1 | 2025-04-10 02:49:33,966 WARN [org.keycloak.theme.DefaultThemeManager] (executor-thread-4) Not found parent theme ‘keycloak’ of theme ‘openremote’. Unable to load ACCOUNT theme ‘openremote’ due to this.
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
keycloak-1 | 2025-04-10 02:49:33,969 ERROR [org.keycloak.theme.DefaultThemeManager] (executor-thread-4) Failed to find ACCOUNT theme openremote, using built-in themes
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor.schedule(DefaultReactiveExecutor.java:54)
keycloak-1 | 2025-04-10 02:49:33,974 WARN [org.keycloak.theme.DefaultThemeManager] (executor-thread-4) Not found parent theme ‘keycloak’ of theme ‘openremote’. Unable to load ACCOUNT theme ‘openremote’ due to this.
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.lambda$doRun$1(RedeliveryErrorHandler.java:813)
keycloak-1 | 2025-04-10 02:49:33,976 ERROR [org.keycloak.theme.DefaultThemeManager] (executor-thread-4) Failed to find ACCOUNT theme openremote, using built-in themes
manager-1 | at org.apache.camel.processor.ThreadsProcessor$ProcessCall.run(ThreadsProcessor.java:82)
manager-1 | at io.micrometer.core.instrument.internal.TimedRunnable.run(TimedRunnable.java:49)
manager-1 | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
manager-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
manager-1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
manager-1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
manager-1 | at java.base/java.lang.Thread.run(Thread.java:1583)
manager-1 | 2025-04-10 02:29:39.076 WARNING [ContainerExecutor-31 ] nremote.manager.event.ClientEventService : Event subscriber has thrown an exception: org.openremote.manager.datapoint.AssetDatapointService$$Lambda/0x00007d5bf4babf38@60b63b9a
manager-1 | org.openremote.manager.asset.AssetProcessingException: STATE_STORAGE_FAILED (Failed to insert or update asset data point for attribute: AttributeEvent{timestamp=2025-04-10T00:29:39.042Z, ref=AttributeRef{id=‘52EpjNqTUWC3m7caTwE67s’, name=‘flowAccumulative’}, realm=kai, source=RulesEngine, valueType=java.lang.Double})
manager-1 | at org.openremote.manager.datapoint.AssetDatapointService.onAttributeEvent(AssetDatapointService.java:127)
manager-1 | at org.openremote.manager.event.ClientEventService.lambda$sendToSubscribers$14(ClientEventService.java:399)
manager-1 | at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:891)
manager-1 | at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
manager-1 | at org.openremote.manager.event.ClientEventService.sendToSubscribers(ClientEventService.java:384)
manager-1 | at org.openremote.manager.event.ClientEventService.lambda$configure$13(ClientEventService.java:378)
manager-1 | at org.apache.camel.support.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:65)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:808)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:714)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor.schedule(DefaultReactiveExecutor.java:54)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.lambda$doRun$1(RedeliveryErrorHandler.java:813)
manager-1 | at org.apache.camel.processor.ThreadsProcessor$ProcessCall.run(ThreadsProcessor.java:82)
manager-1 | at io.micrometer.core.instrument.internal.TimedRunnable.run(TimedRunnable.java:49)
manager-1 | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
manager-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
manager-1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
manager-1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
manager-1 | at java.base/java.lang.Thread.run(Thread.java:1583)
manager-1 | Caused by: java.lang.IllegalStateException: Failed to insert/update data point:
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.lambda$upsertValue$1(AbstractDatapointService.java:114)
manager-1 | at org.hibernate.jdbc.WorkExecutor.executeWork(WorkExecutor.java:39)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.lambda$doWork$5(AbstractSharedSessionContract.java:1054)
manager-1 | at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.coordinateWork(JdbcCoordinatorImpl.java:303)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1065)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1053)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.lambda$upsertValue$2(AbstractDatapointService.java:102)
manager-1 | at org.openremote.container.persistence.PersistenceService.lambda$doTransaction$4(PersistenceService.java:420)
manager-1 | at org.openremote.container.persistence.PersistenceService.doReturningTransaction(PersistenceService.java:430)
manager-1 | at org.openremote.container.persistence.PersistenceService.doTransaction(PersistenceService.java:419)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.upsertValue(AbstractDatapointService.java:101)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.upsertValue(AbstractDatapointService.java:98)
manager-1 | at org.openremote.manager.datapoint.AssetDatapointService.onAttributeEvent(AssetDatapointService.java:125)
manager-1 | … 21 more
manager-1 | Caused by: org.postgresql.util.PSQLException: ERROR: there is no unique or exclusion constraint matching the ON CONFLICT specification
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2733)
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2420)
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372)
manager-1 | at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517)
manager-1 | at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434)
manager-1 | at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:194)
manager-1 | at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:155)
manager-1 | at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
manager-1 | at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.lambda$upsertValue$1(AbstractDatapointService.java:110)
manager-1 | … 33 more
manager-1 | 2025-04-10 02:29:39.103 WARNING [ContainerExecutor-30 ] .manager.datapoint.AssetDatapointService : Failed to insert/update data point:
manager-1 | org.postgresql.util.PSQLException: ERROR: there is no unique or exclusion constraint matching the ON CONFLICT specification
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2733)
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2420)
manager-1 | at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372)
manager-1 | at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517)
manager-1 | at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434)
manager-1 | at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:194)
manager-1 | at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:155)
manager-1 | at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
manager-1 | at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.lambda$upsertValue$1(AbstractDatapointService.java:110)
manager-1 | at org.hibernate.jdbc.WorkExecutor.executeWork(WorkExecutor.java:39)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.lambda$doWork$5(AbstractSharedSessionContract.java:1054)
manager-1 | at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.coordinateWork(JdbcCoordinatorImpl.java:303)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1065)
manager-1 | at org.hibernate.internal.AbstractSharedSessionContract.doWork(AbstractSharedSessionContract.java:1053)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.lambda$upsertValue$2(AbstractDatapointService.java:102)
manager-1 | at org.openremote.container.persistence.PersistenceService.lambda$doTransaction$4(PersistenceService.java:420)
manager-1 | at org.openremote.container.persistence.PersistenceService.doReturningTransaction(PersistenceService.java:430)
manager-1 | at org.openremote.container.persistence.PersistenceService.doTransaction(PersistenceService.java:419)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.upsertValue(AbstractDatapointService.java:101)
manager-1 | at org.openremote.manager.datapoint.AbstractDatapointService.upsertValue(AbstractDatapointService.java:98)
manager-1 | at org.openremote.manager.datapoint.AssetDatapointService.onAttributeEvent(AssetDatapointService.java:125)
manager-1 | at org.openremote.manager.event.ClientEventService.lambda$sendToSubscribers$14(ClientEventService.java:399)
manager-1 | at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:891)
manager-1 | at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
manager-1 | at org.openremote.manager.event.ClientEventService.sendToSubscribers(ClientEventService.java:384)
manager-1 | at org.openremote.manager.event.ClientEventService.lambda$configure$13(ClientEventService.java:378)
manager-1 | at org.apache.camel.support.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:65)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:808)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:714)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
manager-1 | at org.apache.camel.impl.engine.DefaultReactiveExecutor.schedule(DefaultReactiveExecutor.java:54)
manager-1 | at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.lambda$doRun$1(RedeliveryErrorHandler.java:813)
StateException: Failed to insert/update data point: