Users cannot send DMs after Slack import

Summary
I’ve exported data from a test Slack server (having around 4 users, only a few channels and messages) and imported the data into Mattermost. Since I have the Business+ plan, the export included DMs and private channels too. The Mattermost server was a fresh install.

The issue is that users are unable to send messages to direct channels that were part of the Slack export. The message history loads, but the input itself is disabled and the following message is shown: Something went wrong while loading the component. Please wait a moment, or try reloading the app. Reloading the app, however, does not fix the issue, unfortunately. What’s more interesting is that users can send message to direct channels that were not part of the Slack export. So to sum it up:

User A Exists in Slack export
User B Exists in Slack export
User C Does not exist in Slack export
User A and B exchanged DMs, which is also included in the Slack export

User A and B can send message to User C. User A and B cannot, however, send direct messages to each other, as described above.

The output of mattermost version:

Version: 11.7.2
Build Number: 26431767452
Build Date: Tue May 26 04:16:29 UTC 2026
Build Hash: 70c68d0cf6357e2b5c6b66bcc6ffc03bd13d1910
Build Enterprise Ready: true

Steps to reproduce
1) The Mattermost server was installed via this Proxmox community script.
2) I followed the official migration guide.

Mattermost: v11.7.2

mmctl: v11.7.2

mmetl: v0.4.0

Expected behavior
Users should be able to send DMs to other users.

Observed behavior
I check the devtools console and network tabs looking for errors, but surprisingly, couldn’t see anything interesting. I did export data from the Mattermost server after playing around with it, and noticed that the participants of direct channels, that were not part of the Slack export had a property, called scheme_user (set to true). This property was not present on participants transformed by mmetl from the Slack export. Adding this property to all channel participants and importing it into a fresh Mattermost install fixed the issue, all users were able to send messages to the appropriate direct channels.

Example direct channel without scheme_user (as generated by mmetl from the Slack export):

{"type":"direct_channel","direct_channel":{"members":["tamas.adam","peter.varadi"],"participants":[{"username":"tamas.adam","msg_count":24,"msg_count_root":24,"last_viewed_at":1779351726217},{"username":"peter.varadi","msg_count":24,"msg_count_root":24,"last_viewed_at":1779351726217}],"header":""}}

The same direct channel with scheme_user. Importing this results in a usable direct channel:

{"type":"direct_channel","direct_channel":{"members":["tamas.adam","peter.varadi"],"participants":[{"username":"tamas.adam","msg_count":24,"msg_count_root":24,"last_viewed_at":1779351726217,"scheme_user":true},{"username":"peter.varadi","msg_count":24,"msg_count_root":24,"last_viewed_at":1779351726217,"scheme_user":true}],"header":""}}

Any help with this would be appreciated, I’m not sure if this is genuinely a bug in Mattermost or mmetl or if I haven’t configured some fallback somewhere.

Yeah I’ve got this exact issue, and actually I wouldn’t have come right without this post, so thank you @tamas.adam :raising_hands:t3: for the fix of "scheme_user":true, as I modified the .jsonl myself to include it in all the direct_channel JSON lines.

Summary

I did a full Slack export recently moving to Mattermost, with attachments. Everything went smoothly, except my DMs were completely broken after the import, irrespective of Enterprise or Team edition; I’m assuming it is all the same API calls anyway. I’m running Mattermost via Docker, using NGINX (with SSL) on the host system as a reverse proxy.

I can see 403 permission errors on read_channel in the Docker logs with the corresponding DMs (direct channel).

If I start from scratch, and modify the .jsonl (output from mmetl) myself with the "scheme_user":true fix on all the direct_channel JSON lines, and do an import, all DMs are fine after that :slight_smile: (see diff below)

Versions

mmetl v0.4.0 -- ffc9f8d42c46ef331124ebcd220f566df65d97ff
mmctl:
Version:	11.8.1

BuiltDate:	2026-06-15T13:35:20Z
CommitDate:	dev
GitCommit:	dev
GitTreeState:	dev
GoVersion:	go1.26.4
Compiler:	gc
Platform:	darwin/arm64
docker exec -t mattermost-mattermost-1 mattermost version

Version: 11.8.1
Build Number: 27550053990
Build Date: Mon Jun 15 13:43:22 UTC 2026
Build Hash: 358e15f91c4acbd39a2457913398681a65c95b18
Build Enterprise Ready: false

Screenshots

Here is the infinite “Loading…” screenshot.

mattermost-desktop-6.2.2-mac-arm64

(Side note: If I set my user’s role to “System Admin”, just for testing, I can see the DM chat, but I still can’t post to it)

Here is the Docker log, you can seeing it erroring out with 403s on all the api/v4/channels requests:

Here is my diff with the original mmetloutput (not working) vs the modified (working) one, something.random is obfuscated, but that is the corresponding username in the broken DM chat above:

I hope this additional post helps somebody with a Slack import as it did me.

I’m assuming this is a bug in mmetl transform tool.