Skip to content
setup edited this page Jun 7, 2026 · 1 revision

FAQ

Does it modify my RocketChat instance? No. Rocket2Matter only reads from RocketChat's MongoDB. All changes happen on the Mattermost side, via mmctl import.

Can I run the export multiple times? Yes — export always rewrites out/. But a full import is not idempotent (posts would be duplicated). To re-import, wipe Mattermost's data first.

Which file storage backends are supported? GridFS only. RocketChat instances using FileSystem, S3 or Google Storage will have their files skipped (text is still migrated). Check FileUpload_Storage_Type in the source.

Can it preserve who read which message? Not per message — neither RocketChat nor Mattermost track that. Both work at the channel level ("last seen"). Use READ_STATE=last-seen to preserve per-channel read state, or READ_STATE=read to mark everything read. See Import options.

Why do imported users have no password? Mattermost bulk import can't set usable passwords. Reset one migrated admin's password to log in — see Resetting passwords. No synthetic admin account is created.

What happens to messages from deleted users? They're attributed to a configurable ghost user (GHOST_USERNAME).

Are direct messages migrated? Yes (1-to-1 and group). Note Mattermost limits group channels to 8 members; larger RocketChat group DMs may be truncated on import. DM read state is not set.

Are bots migrated? No, bot accounts are skipped.

How big can the source be? It handles large instances, but thread replies are held in memory during export; allow enough RAM for very large databases. The attachment extraction streams files to disk.

Do I need Node installed to use it? No, if you use the prebuilt binary — Node is embedded. From source you need Node ≥ 20 and pnpm.

What versions were tested? RocketChat 7.10.0 → Mattermost 11.3.0 (mmctl 11.3.0). Others likely work but aren't validated.

Clone this wiki locally