HipChat to Mattermost Migration

Hi, everyone.

I would like to gather information on how you migrate your HipChat instance to Mattermost (tools, roadblocks, suggestions). I came across these so far.

Can you share any other tools that you may have tested successfully and your story / article here? For example, Normalize HipChat usernames article that was written by @jby is really helpful for admins who may run into issues with the usernames.

Thank you.


Does anyone recommend one tool over another? I cant seem to get any of them to work. I am currently trying to see where I went wrong with migratemost as I have never used python before.

@Brownr Can you help share more information on the issue(s) you hit when trying Migratemost?


@jasonblais Thanks for the reply, for some reason I can only get the users, and it only produces users when I use the –concat-output function.

If I use –migrate-all it will not produce a mm_users.jsonl, however I get over 200 mm_channel_posts_xxx.jsonl entries, along with mm_channels.jsonl,mm_team.jsonl, channels_to_archice.txt and users_to_deactivate.txt.

I have successfully imported users and am not sure how I am going to tackle the 200+ files that need to be individually imported, any input is appreciated.

**Also if I add --migrate-all after --concat-output, it seems to ignore --concat-output

Not sure if this is normal or helps but when I run the migratemost tool, the bulk of the feedback is as seen below. I have not been far enough to see how this effects the new server.

Any assistance is greatly appreciated! Thank you.

To help any other newbies that may scroll through here in the fututre, I would like to note that you have to type python before the migratemost.py command for example (sudo python migratemost.py -t “teamname” -o “outputfolder” -i “inputfolder” --concat-output)

Hello, @Brownr

I would recommend us to take one step at a time to understand the usage of Migratemost for HipChat - Mattermost migration.


  • Based on the explanation provided, I would like to know how the HipChat export was generated. May I know which method you used to generate the export?

  • After the HipChat export was completed, did you get a single .tar.gz.aes file? Did you decrypt it to check the content of the files which should looks similar to the Export contents and file system in the documentation?

  • Prior to the process of converting the Hipchat export to Mattermost bulk import file, did you make any modifications to the by decrypting the export artifact, making changes to the file, and re-encrypt it again?

During Conversion

  • Since you mentioned that the mm_user.jsonl file only gets generated when you use the –concat-output parameter, I was going through the instructions, can you share specifically the full command that you used to perform the conversion?
  • You also mentioned that the –migrate-all ignores the –concat-output. Can you please share the full command you used on your end? Does it look something like this?
sudo python migratemost.py -t “teamname” -o “outputfolder” -i “inputfolder” -v --concat-output --migrate-all
  • Can you please share the full log during the conversion process so we can go through it and trace the errors better?
  • The screen shot you provided means that the tool was unable to find the attachments based on the path configured - localhome/srcadmin/Desktop/import/rooms/xxx. Did you check if the export includes HipChat attachments?

That would provide a good start to troubleshoot the issue we are facing here. Thanks.

1 Like

Thank you, @ahmaddanial

Using the Migration Utility definitely straightened out some issues. (used the CLI prior)
this produced only one tar.gz.aes file.

After the utility was complete, I saved it to my windows Desktop, then used WinSCP to transfer it into my mattermost server.

Within the mattermost server I used the openssl command to decrypt it within the datain folder.

running migratemost.py this time around I get TypeError: Incorrect padding when using the –migrate-all option (see image below) Will push users with --concat-output but fails with --migrate-all

I can run all the other commands except --migrate-channel-posts which gives me KeyError: ‘attachment’ (see image below)

I can get a full log later this afternoon starting from the top.

Thanks again everyone for the assistance!

Hi, @Brownr

You are most welcome. Good to see that we are making progress. Based on my research, the TypeError: Incorrect padding error is a python encode/decode issue though I am not entirely sure why you are running into the issue. May I know what python version do you have installed on the Mattermost server by running the python --version command?

The KeyError: ‘attachment’on the other hand refers to the possibility of the tool not being able to locate the attachments properly. Can I please confirm which folder in the datain directory contains the all attachments you exported from HipChat?

At the same time, may I know if you are open to raise an issue to the Migratemost team directly through here to speed up the troubleshooting process too?

1 Like


I am currently running Python 2.7.5, and see datain below.

I will open a support ticket, thank you.

1 Like

Hi, everyone.

Had a conversation with HC2MM team and gathered the following gotchas when using the tool besides the ones listed in documentation:

  • Migration moves all Hipchat users, both active and inactive. Make sure to configure Mattermost instance for Max Users Per Team setting to be equal to or exceed the number of total users in HipChat.
  • Copy the executable file to any machine that can access both your Hipchat server and your Mattermost server. The directory on which the executable is saved and run is referred to as WORKING_DIRECTORY. Please make sure the user launching the application has write access to this directory .
  • Please make sure there is enough disk space for the export file and the server has sufficient memory (at least 16GB).