Threads not working - Illegal mix of collations

Hello, we have deployed mattermost team edition to kubernetes via helm. At the time of writing this we are using the latest version.

Helm Chart mattermost-team-edition-6.6.76
APP VERSION: 10.7.1

Since a few weeks ago we now appear to get these errors in the logs.

Is anyone aware of what this issue is and/or how to resolve it?

{“timestamp”:“2025-05-09 07:05:23.913 Z”,“level”:“error”,“msg”:“Unable to get user threads”,“caller”:“web/context.go:123”,“path”:“/api/v4/users/me/teams/y8reu8becfbatb7nihi4i9o3xc/threads/ojzax1oyo3ffxx5ybcoruxm87e/read/1746774317729”,“request_id”:“REDACTED”,“ip_addr”:“REDACTED”,“user_id”:“REDACTED”,“method”:“PUT”,“err_where”:“GetThreadForUser”,“http_code”:500,“error”:“GetThreadForUser: Unable to get user threads, failed to get thread for user id=REDACTED, post id=REDACTED: Error 1267 (HY000): Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation ‘=’”}

What database are you using?

We are using mysql. The database is essentially the default options for the mattermost team edition helm chart.

Looking at the DB itself I assume the error is because some tables are set to different collation options.

Is there a missing migration from mattermost on an upgrade to handle this?

SELECT TABLE_NAME, TABLE_COLLATION FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'mattermost';
+------------------------------+--------------------+
| TABLE_NAME                   | TABLE_COLLATION    |
+------------------------------+--------------------+
| Audits                       | utf8mb4_unicode_ci |
| Bots                         | utf8mb4_unicode_ci |
| ChannelBookmarks             | utf8mb4_0900_ai_ci |
| ChannelMemberHistory         | utf8mb4_unicode_ci |
| ChannelMembers               | utf8mb4_unicode_ci |
| Channels                     | utf8mb4_unicode_ci |
| ClusterDiscovery             | utf8mb4_unicode_ci |
| CommandWebhooks              | utf8mb4_unicode_ci |
| Commands                     | utf8mb4_unicode_ci |
| Compliances                  | utf8mb4_unicode_ci |
| ConfigurationFiles           | utf8mb4_0900_ai_ci |
| Configurations               | utf8mb4_0900_ai_ci |
| DesktopTokens                | utf8mb4_0900_ai_ci |
| Drafts                       | utf8mb4_0900_ai_ci |
| Emoji                        | utf8mb4_unicode_ci |
| FileInfo                     | utf8mb4_unicode_ci |
| GroupChannels                | utf8mb4_unicode_ci |
| GroupMembers                 | utf8mb4_unicode_ci |
| GroupTeams                   | utf8mb4_unicode_ci |
| IR_Incident                  | utf8mb4_0900_ai_ci |
| IR_Playbook                  | utf8mb4_0900_ai_ci |
| IR_PlaybookMember            | utf8mb4_0900_ai_ci |
| IR_StatusPosts               | utf8mb4_0900_ai_ci |
| IR_System                    | utf8mb4_0900_ai_ci |
| IR_TimelineEvent             | utf8mb4_0900_ai_ci |
| IR_ViewedChannel             | utf8mb4_0900_ai_ci |
| IncomingWebhooks             | utf8mb4_unicode_ci |
| Jobs                         | utf8mb4_unicode_ci |
| Licenses                     | utf8mb4_unicode_ci |
| LinkMetadata                 | utf8mb4_unicode_ci |
| NotifyAdmin                  | utf8mb4_0900_ai_ci |
| OAuthAccessData              | utf8mb4_unicode_ci |
| OAuthApps                    | utf8mb4_unicode_ci |
| OAuthAuthData                | utf8mb4_unicode_ci |
| OutgoingOAuthConnections     | utf8mb4_0900_ai_ci |
| OutgoingWebhooks             | utf8mb4_unicode_ci |
| PersistentNotifications      | utf8mb4_0900_ai_ci |
| PluginKeyValueStore          | utf8mb4_unicode_ci |
| PostAcknowledgements         | utf8mb4_0900_ai_ci |
| PostReminders                | utf8mb4_0900_ai_ci |
| Posts                        | utf8mb4_unicode_ci |
| PostsPriority                | utf8mb4_0900_ai_ci |
| Preferences                  | utf8mb4_unicode_ci |
| ProductNoticeViewState       | utf8mb4_unicode_ci |
| PropertyFields               | utf8mb4_0900_ai_ci |
| PropertyGroups               | utf8mb4_0900_ai_ci |
| PropertyValues               | utf8mb4_0900_ai_ci |
| PublicChannels               | utf8mb4_unicode_ci |
| Reactions                    | utf8mb4_unicode_ci |
| RecentSearches               | utf8mb4_0900_ai_ci |
| RemoteClusters               | utf8mb4_0900_ai_ci |
| RetentionIdsForDeletion      | utf8mb4_0900_ai_ci |
| RetentionPolicies            | utf8mb4_0900_ai_ci |
| RetentionPoliciesChannels    | utf8mb4_0900_ai_ci |
| RetentionPoliciesTeams       | utf8mb4_0900_ai_ci |
| Roles                        | utf8mb4_unicode_ci |
| ScheduledPosts               | utf8mb4_0900_ai_ci |
| Schemes                      | utf8mb4_unicode_ci |
| Sessions                     | utf8mb4_unicode_ci |
| SharedChannelAttachments     | utf8mb4_0900_ai_ci |
| SharedChannelRemotes         | utf8mb4_0900_ai_ci |
| SharedChannelUsers           | utf8mb4_0900_ai_ci |
| SharedChannels               | utf8mb4_0900_ai_ci |
| SidebarCategories            | utf8mb4_unicode_ci |
| SidebarChannels              | utf8mb4_unicode_ci |
| Status                       | utf8mb4_unicode_ci |
| Systems                      | utf8mb4_unicode_ci |
| TeamMembers                  | utf8mb4_unicode_ci |
| Teams                        | utf8mb4_unicode_ci |
| TermsOfService               | utf8mb4_unicode_ci |
| ThreadMemberships            | utf8mb4_unicode_ci |
| Threads                      | utf8mb4_unicode_ci |
| Tokens                       | utf8mb4_unicode_ci |
| UploadSessions               | utf8mb4_unicode_ci |
| UserAccessTokens             | utf8mb4_unicode_ci |
| UserGroups                   | utf8mb4_unicode_ci |
| UserTermsOfService           | utf8mb4_unicode_ci |
| Users                        | utf8mb4_unicode_ci |
| calls                        | utf8mb4_0900_ai_ci |
| calls_channels               | utf8mb4_0900_ai_ci |
| calls_jobs                   | utf8mb4_0900_ai_ci |
| calls_sessions               | utf8mb4_0900_ai_ci |
| db_config_migrations         | utf8mb4_0900_ai_ci |
| db_lock                      | utf8mb4_0900_ai_ci |
| db_migrations                | utf8mb4_0900_ai_ci |
| db_migrations_calls          | utf8mb4_0900_ai_ci |
| focalboard_blocks            | utf8mb4_unicode_ci |
| focalboard_blocks_history    | utf8mb4_unicode_ci |
| focalboard_schema_migrations | utf8mb4_unicode_ci |
| focalboard_sessions          | utf8mb4_unicode_ci |
| focalboard_sharing           | utf8mb4_unicode_ci |
| focalboard_system_settings   | utf8mb4_unicode_ci |
| focalboard_users             | utf8mb4_unicode_ci |
| focalboard_workspaces        | utf8mb4_unicode_ci |
| schema_migrations            | latin1_swedish_ci  |
+------------------------------+--------------------+

That’s off that MySQL would be the default as we’ve been moving away from it and towards Postgres for some time now. Migration guidelines from MySQL to PostgreSQL - Mattermost documentation

Where did you get the helm chart? We only support Mattermost on k8s with an Enterprise license, as it includes High vailability which would enable horizontal scaling.