Large MUC messages do not get saved in OF database

When a group contains users with large amount of OMEMO bundle nodes, the message stanza text’s size is more than the max size allowed by the data base. Because of this in some groups offline messages are not delivered / sent. Here are 2 errors that popped up in the OF server:

2023.06.13 12:02:21 ERROR [archive-service-worker-3]: org.jivesoftware.openfire.archive.ConversationManager - Unable to archive message data!
java.sql.BatchUpdateException: Data truncation: Data too long for column 'stanza' at row 1
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
    at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
    at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:?]
    at com.mysql.cj.util.Util.handleNewInstance(Util.java:192) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.util.Util.getInstance(Util.java:167) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.util.Util.getInstance(Util.java:174) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.exceptions.SQLError.createBatchUpdateException(SQLError.java:224) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchWithMultiValuesClause(ClientPreparedStatement.java:718) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:409) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:795) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at org.apache.commons.dbcp2.DelegatingStatement.executeBatch(DelegatingStatement.java:241) ~[commons-dbcp2-2.9.0.jar:2.9.0]
    at org.apache.commons.dbcp2.DelegatingStatement.executeBatch(DelegatingStatement.java:241) ~[commons-dbcp2-2.9.0.jar:2.9.0]
    at org.jivesoftware.openfire.archive.ConversationManager$MessageArchivingRunnable.store(ConversationManager.java:1335) [monitoring-2.5.0.jar:?]
    at org.jivesoftware.openfire.archive.Archiver.run(Archiver.java:154) [xmppserver-4.7.5.jar:4.7.5]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
    at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'stanza' at row 1
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:104) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1009) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1320) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchWithMultiValuesClause(ClientPreparedStatement.java:679) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    ... 11 more
2023.06.13 12:02:21 TRACE [archive-service-worker-3]: org.jivesoftware.openfire.archive.Archiver - Stored all produced work in the database. Work size: 1
2023.06.13 12:02:21 ERROR [archive-service-worker-5]: org.jivesoftware.openfire.muc.spi.MUCPersistenceManager - Error saving conversation log batch
java.sql.BatchUpdateException: Data truncation: Data too long for column 'stanza' at row 1
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
    at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
    at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:?]
    at com.mysql.cj.util.Util.handleNewInstance(Util.java:192) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.util.Util.getInstance(Util.java:167) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.util.Util.getInstance(Util.java:174) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.exceptions.SQLError.createBatchUpdateException(SQLError.java:224) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchWithMultiValuesClause(ClientPreparedStatement.java:718) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:409) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:795) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at org.apache.commons.dbcp2.DelegatingStatement.executeBatch(DelegatingStatement.java:241) ~[commons-dbcp2-2.9.0.jar:2.9.0]
    at org.apache.commons.dbcp2.DelegatingStatement.executeBatch(DelegatingStatement.java:241) ~[commons-dbcp2-2.9.0.jar:2.9.0]
    at org.jivesoftware.openfire.muc.spi.MUCPersistenceManager.saveConversationLogBatch(MUCPersistenceManager.java:1341) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl$ConversationLogEntryArchiver.store(MultiUserChatServiceImpl.java:1837) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.archive.Archiver.run(Archiver.java:154) [xmppserver-4.7.5.jar:4.7.5]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
    at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'stanza' at row 1
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:104) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1009) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1320) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchWithMultiValuesClause(ClientPreparedStatement.java:679) ~[mysql-connector-j-8.0.32.jar:8.0.32]
    ... 12 more