The error unrelated to ExitOnOutOfMemoryError. Do you have proper stack trace?
Thanks for the quick response Anton,
What do you mean by a proper stack trace? I get the following from the traccar log
2026-09-01 10:04:30 INFO: Operating system name: Linux version: 5.14.0-687.42.1.el9_8.x86_64 architecture: amd64
2026-09-01 10:04:30 INFO: Java runtime name: OpenJDK 64-Bit Server VM vendor: Eclipse Adoptium version: 25.0.4+7-LTS
2026-09-01 10:04:30 INFO: Memory limit heap: 914mb non-heap: 0mb
2026-09-01 10:04:30 INFO: Character encoding: UTF-8
2026-09-01 10:04:30 INFO: Version: 6.15.3
2026-09-01 10:04:30 INFO: Starting server...
2026-09-01 10:04:30 INFO: Health check enabled with period 480000
2026-09-01 10:04:31 INFO: HikariPool-1 - Starting...
2026-09-01 10:04:31 INFO: HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@3bbf9027
2026-09-01 10:04:31 INFO: HikariPool-1 - Start completed.
2026-09-01 10:04:31 INFO: Successfully acquired change log lock
2026-09-01 10:04:31 INFO: Successfully released change log lock
2026-09-01 10:04:31 INFO: Logging exception.
2026-09-01 10:04:31 INFO: Command execution complete
2026-09-01 10:04:31 ERROR: Main method error - COLLATION 'utf8mb3_general_ci' is not valid for CHARACTER SET 'utf8mb4' - SQLSyntaxErrorException (... < DatabaseModule:103 < <gener:-1 < *:-1 < ... < MainModule:147 < <gener:-1 < ...)
Kev
Also, I did see a similar post that said to delete all except the conf and reinstall the server, this didn't change anything.
Try enabling logger.fullStackTraces and then share new log. It will have full crash stack trace.
where do I enable this setting?
Found it...
2026-09-01 13:09:44 INFO: Operating system name: Linux version: 5.14.0-687.42.1.el9_8.x86_64 architecture: amd64
2026-09-01 13:09:44 INFO: Java runtime name: OpenJDK 64-Bit Server VM vendor: Eclipse Adoptium version: 25.0.4+7-LTS
2026-09-01 13:09:44 INFO: Memory limit heap: 914mb non-heap: 0mb
2026-09-01 13:09:44 INFO: Character encoding: UTF-8
2026-09-01 13:09:44 INFO: Version: 6.15.3
2026-09-01 13:09:44 INFO: Starting server...
2026-09-01 13:09:44 INFO: Health check enabled with period 480000
2026-09-01 13:09:44 INFO: HikariPool-1 - Starting...
2026-09-01 13:09:44 INFO: HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@70331432
2026-09-01 13:09:44 INFO: HikariPool-1 - Start completed.
2026-09-01 13:09:45 INFO: Successfully acquired change log lock
2026-09-01 13:09:45 INFO: Successfully released change log lock
2026-09-01 13:09:45 INFO: Logging exception.
2026-09-01 13:09:45 INFO: Command execution complete
2026-09-01 13:09:45 ERROR: Main method error -
liquibase.exception.CommandExecutionException: liquibase.exception.UnexpectedLiquibaseException: liquibase.exception.DatabaseException: java.sql.SQLSyntaxErrorException: COLLATION 'utf8mb3_general_ci' is not valid for CHARACTER SET 'utf8mb4'
at liquibase.command.CommandScope.lambda$execute$5(CommandScope.java:357)
at liquibase.Scope.child(Scope.java:280)
at liquibase.Scope.child(Scope.java:256)
at liquibase.command.CommandScope.execute(CommandScope.java:289)
at liquibase.Liquibase.clearCheckSums(Liquibase.java:1258)
at org.traccar.storage.DatabaseModule.provideDataSource(DatabaseModule.java:103)
at org.traccar.storage.DatabaseModule$$FastClassByGuice$$1cf639.GUICE$TRAMPOLINE(<generated>)
at org.traccar.storage.DatabaseModule$$FastClassByGuice$$1cf639.apply(<generated>)
at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:260)
at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:171)
at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:40)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:60)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1148)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186)
at org.traccar.MainModule.provideStorage(MainModule.java:147)
at org.traccar.MainModule$$FastClassByGuice$$a0406.GUICE$TRAMPOLINE(<generated>)
at org.traccar.MainModule$$FastClassByGuice$$a0406.apply(<generated>)
at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:260)
at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:171)
at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:40)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:60)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1148)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186)
at org.traccar.schedule.ScheduleManager.lambda$start$0(ScheduleManager.java:56)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
at java.base/java.util.stream.ReferencePipeline$Head.forEachOrdered(ReferencePipeline.java:813)
at org.traccar.schedule.ScheduleManager.start(ScheduleManager.java:55)
at org.traccar.Main.run(Main.java:126)
at org.traccar.Main.main(Main.java:110)
Caused by: liquibase.exception.UnexpectedLiquibaseException: liquibase.exception.DatabaseException: java.sql.SQLSyntaxErrorException: COLLATION 'utf8mb3_general_ci' is not valid for CHARACTER SET 'utf8mb4'
at liquibase.changelog.StandardChangeLogHistoryService.init(StandardChangeLogHistoryService.java:122)
at liquibase.command.core.ClearChecksumsCommandStep.run(ClearChecksumsCommandStep.java:38)
at liquibase.command.CommandScope.lambda$execute$5(CommandScope.java:301)
... 44 more
Caused by: liquibase.exception.DatabaseException: java.sql.SQLSyntaxErrorException: COLLATION 'utf8mb3_general_ci' is not valid for CHARACTER SET 'utf8mb4'
at liquibase.snapshot.ResultSetCache.get(ResultSetCache.java:101)
at liquibase.snapshot.JdbcDatabaseSnapshot$CachingDatabaseMetaData.getColumns(JdbcDatabaseSnapshot.java:405)
at liquibase.snapshot.jvm.ColumnSnapshotGenerator.addTo(ColumnSnapshotGenerator.java:167)
at liquibase.snapshot.jvm.JdbcSnapshotGenerator.snapshot(JdbcSnapshotGenerator.java:76)
at liquibase.snapshot.SnapshotGeneratorChain.snapshot(SnapshotGeneratorChain.java:72)
at liquibase.snapshot.DatabaseSnapshot.include(DatabaseSnapshot.java:324)
at liquibase.snapshot.DatabaseSnapshot.init(DatabaseSnapshot.java:117)
at liquibase.snapshot.DatabaseSnapshot.<init>(DatabaseSnapshot.java:66)
at liquibase.snapshot.JdbcDatabaseSnapshot.<init>(JdbcDatabaseSnapshot.java:37)
at liquibase.snapshot.SnapshotGeneratorFactory.createSnapshot(SnapshotGeneratorFactory.java:343)
at liquibase.snapshot.SnapshotGeneratorFactory.createSnapshot(SnapshotGeneratorFactory.java:372)
at liquibase.snapshot.SnapshotGeneratorFactory.getDatabaseChangeLogTable(SnapshotGeneratorFactory.java:383)
at liquibase.changelog.StandardChangeLogHistoryService.init(StandardChangeLogHistoryService.java:119)
... 46 more
Caused by: java.sql.SQLSyntaxErrorException: COLLATION 'utf8mb3_general_ci' is not valid for CHARACTER SET 'utf8mb4'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:112)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:114)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:988)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1056)
at com.mysql.cj.jdbc.DatabaseMetaDataInformationSchema.executeMetadataQuery(DatabaseMetaDataInformationSchema.java:60)
at com.mysql.cj.jdbc.DatabaseMetaDataInformationSchema.getColumns(DatabaseMetaDataInformationSchema.java:431)
at liquibase.snapshot.JdbcDatabaseSnapshot$CachingDatabaseMetaData$GetColumnResultSetCache.fastFetchQuery(JdbcDatabaseSnapshot.java:477)
at liquibase.snapshot.ResultSetCache$SingleResultSetExtractor.fastFetch(ResultSetCache.java:351)
at liquibase.snapshot.ResultSetCache.get(ResultSetCache.java:72)
... 58 more
2026-09-01 13:09:56 INFO: Operating system name: Linux version: 5.14.0-687.42.1.el9_8.x86_64 architecture: amd64
2026-09-01 13:09:56 INFO: Java runtime name: OpenJDK 64-Bit Server VM vendor: Eclipse Adoptium version: 25.0.4+7-LTS
2026-09-01 13:09:56 INFO: Memory limit heap: 914mb non-heap: 0mb
2026-09-01 13:09:56 INFO: Character encoding: UTF-8
2026-09-01 13:09:56 INFO: Version: 6.15.3
2026-09-01 13:09:56 INFO: Starting server...
2026-09-01 13:09:56 INFO: Health check enabled with period 480000
2026-09-01 13:09:56 INFO: HikariPool-1 - Starting...
2026-09-01 13:09:56 INFO: HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@70331432
2026-09-01 13:09:56 INFO: HikariPool-1 - Start completed.
2026-09-01 13:09:57 INFO: Successfully acquired change log lock
2026-09-01 13:09:57 INFO: Successfully released change log lock
2026-09-01 13:09:57 INFO: Logging exception.
2026-09-01 13:09:57 INFO: Command execution complete
2026-09-01 13:09:57 ERROR: Main method error -
liquibase.exception.CommandExecutionException: liquibase.exception.UnexpectedLiquibaseException: liquibase.exception.DatabaseException: java.sql.SQLSyntaxErrorException: COLLATION 'utf8mb3_general_ci' is not valid for CHARACTER SET 'utf8mb4'
at liquibase.command.CommandScope.lambda$execute$5(CommandScope.java:357)
at liquibase.Scope.child(Scope.java:280)
at liquibase.Scope.child(Scope.java:256)
at liquibase.command.CommandScope.execute(CommandScope.java:289)
at liquibase.Liquibase.clearCheckSums(Liquibase.java:1258)
at org.traccar.storage.DatabaseModule.provideDataSource(DatabaseModule.java:103)
at org.traccar.storage.DatabaseModule$$FastClassByGuice$$1cf639.GUICE$TRAMPOLINE(<generated>)
at org.traccar.storage.DatabaseModule$$FastClassByGuice$$1cf639.apply(<generated>)
at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:260)
at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:171)
at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:40)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:60)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1148)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186)
at org.traccar.MainModule.provideStorage(MainModule.java:147)
at org.traccar.MainModule$$FastClassByGuice$$a0406.GUICE$TRAMPOLINE(<generated>)
at org.traccar.MainModule$$FastClassByGuice$$a0406.apply(<generated>)
at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:260)
at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:171)
at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:40)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:60)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1148)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186)
at org.traccar.schedule.ScheduleManager.lambda$start$0(ScheduleManager.java:56)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
at java.base/java.util.stream.ReferencePipeline$Head.forEachOrdered(ReferencePipeline.java:813)
at org.traccar.schedule.ScheduleManager.start(ScheduleManager.java:55)
at org.traccar.Main.run(Main.java:126)
at org.traccar.Main.main(Main.java:110)
Caused by: liquibase.exception.UnexpectedLiquibaseException: liquibase.exception.DatabaseException: java.sql.SQLSyntaxErrorException: COLLATION 'utf8mb3_general_ci' is not valid for CHARACTER SET 'utf8mb4'
at liquibase.changelog.StandardChangeLogHistoryService.init(StandardChangeLogHistoryService.java:122)
at liquibase.command.core.ClearChecksumsCommandStep.run(ClearChecksumsCommandStep.java:38)
at liquibase.command.CommandScope.lambda$execute$5(CommandScope.java:301)
... 44 more
Caused by: liquibase.exception.DatabaseException: java.sql.SQLSyntaxErrorException: COLLATION 'utf8mb3_general_ci' is not valid for CHARACTER SET 'utf8mb4'
at liquibase.snapshot.ResultSetCache.get(ResultSetCache.java:101)
at liquibase.snapshot.JdbcDatabaseSnapshot$CachingDatabaseMetaData.getColumns(JdbcDatabaseSnapshot.java:405)
at liquibase.snapshot.jvm.ColumnSnapshotGenerator.addTo(ColumnSnapshotGenerator.java:167)
at liquibase.snapshot.jvm.JdbcSnapshotGenerator.snapshot(JdbcSnapshotGenerator.java:76)
at liquibase.snapshot.SnapshotGeneratorChain.snapshot(SnapshotGeneratorChain.java:72)
at liquibase.snapshot.DatabaseSnapshot.include(DatabaseSnapshot.java:324)
at liquibase.snapshot.DatabaseSnapshot.init(DatabaseSnapshot.java:117)
at liquibase.snapshot.DatabaseSnapshot.<init>(DatabaseSnapshot.java:66)
at liquibase.snapshot.JdbcDatabaseSnapshot.<init>(JdbcDatabaseSnapshot.java:37)
at liquibase.snapshot.SnapshotGeneratorFactory.createSnapshot(SnapshotGeneratorFactory.java:343)
at liquibase.snapshot.SnapshotGeneratorFactory.createSnapshot(SnapshotGeneratorFactory.java:372)
at liquibase.snapshot.SnapshotGeneratorFactory.getDatabaseChangeLogTable(SnapshotGeneratorFactory.java:383)
at liquibase.changelog.StandardChangeLogHistoryService.init(StandardChangeLogHistoryService.java:119)
... 46 more
Caused by: java.sql.SQLSyntaxErrorException: COLLATION 'utf8mb3_general_ci' is not valid for CHARACTER SET 'utf8mb4'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:112)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:114)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:988)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1056)
at com.mysql.cj.jdbc.DatabaseMetaDataInformationSchema.executeMetadataQuery(DatabaseMetaDataInformationSchema.java:60)
at com.mysql.cj.jdbc.DatabaseMetaDataInformationSchema.getColumns(DatabaseMetaDataInformationSchema.java:431)
at liquibase.snapshot.JdbcDatabaseSnapshot$CachingDatabaseMetaData$GetColumnResultSetCache.fastFetchQuery(JdbcDatabaseSnapshot.java:477)
at liquibase.snapshot.ResultSetCache$SingleResultSetExtractor.fastFetch(ResultSetCache.java:351)
at liquibase.snapshot.ResultSetCache.get(ResultSetCache.java:72)
... 58 more
It looks like your database version is too old. I recommend upgrading to MySQL 8.4 or higher.
This is because MySQL 8.0 reached end-of-life in April 2026, and the latest Connector/J only supports MySQL 8.4+. Since you're on 8.0.46, the new driver's metadata queries don't work correctly against your server. Upgrading to MySQL 8.4 (the current LTS) should fix it.
I'm running the latest traccar server and have suddenly got the following error;
When I search the system logs it seems to indicate a collation issue on the database;
However the database and all tables are utf32_general_ci and there is no reference anywhere to utf8mb3_general_ci or utf8mb4.
Is there a reccomended collation?
Thanks,
Kev