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.