Matrix tips they don't tell you

This is a random combination of FAQ and guides about Matrix. Mostly for my own notes but these might be useful for others.

FAQ

1. Matrix is slow or not working properly. I'm on matrix.org homeserver

Matrix.org is used as default server in many clients. It is known to be slow occasionally. You should pick a server you like from list of public servers and register there. If you already have joined many rooms, you can use migration tool to “copy” your old account to the new account.

After finished, remember to leave all rooms with your matrix.org account so it won't use any resources on the already overloaded server. You can login to both accounts simultaneously with private browser windows.

This also helps decentralize Matrix which is important for the whole ecosystem.

2. Synapse is slow. I'm running sqlite database

The documentation should be more clear: sqlite is only for testing and development servers and not suitable for production use. You must migrate to PostgreSQL using this script.

If you have further problems, join Synapse Admins room and describe your problem.

3. I'm confused about Matrix terminology

It's a complex beast. Here is a short list of what is what:

4. I'm running Element Android but notifications are unreliable. I installed it from F-Droid.

Unfortunatly F-Droid version doesn't have the google push notification support and there is no open alternative available. Better install from Google Play.

Unifiedpush support is in progress but not finished yet. You may want to follow this pull request if interested.

5. I'm running Element Android and a message is stuck in the bottom of the screen. I can't get rid of it.

Open Element Settings / General and press “Clear Cache”. This is a long standing bug, I hope it gets fixed one day.

Note: This bug should be fixed now. Hooray!

6. My Synapse is not working

If you still can't figure out the issue, come to Synapse Admins room and seek for help.

7. Isn't matrix.org the main Matrix server?

It is common misconception that matrix.org is the “main” Matrix server. This is incorrect. Matrix.org is just one (large) homeserver and has no special powers in the federation. Matrix.org staff cannot ban anyone on other servers or give admins on rooms for users who don't have them. This is a conscious decision to keep Matrix decentralized.

Matrix.org is used as default server for registration in some clients, notably Element. Users are encouraged to register on other servers if possible to spread the load.

Matrix.org has been offline on two occasions in history and Matrix federation kept working without issues for everyone else.

8. How do I disable federation?

Usually this is a mistake – read this post for details.

If you really want to do it, set federation_domain_whitelist: [ ] in Synapse config.

9. Should I upgrade my room to latest version?

Room versions describe how rooms work on a technical level. New room versions can fix bugs, improve security, and (rarely) add new user facing features. If you have an existing room that seems to be working fine, there is generally no need to upgrade the room version.

If you still think you want to upgrade, you should first be aware that “upgrading” the room version is a bit of a misnomer. A room's version can't be changed. When you “upgrade” a room, what you are actually doing is creating a brand new room and your client will copy over the name, avatar, topic, and other settings. Your client will also give you the option to invite all of the users from the previous room. Each user will need to manually join the new room. For this reason, upgrading is a somewhat painful process. You shouldn't upgrade without a good reason.

If you decide that it is worth the cost to upgrade a room, you should generally jump to as new a version as practical so that you get all of the bug fixes, features, and security improvements in one jump. For example don't upgrade from version 1 to version 2 today. If you have a version 1 room and decide to upgrade, go straight to version 6 or later. The main reason not to pick the absolute latest version is that servers need to specifically support each room version. If the users in your room are on older versions of Synapse or are on alternative homeservers like Conduit they may not be able to join rooms using the latest version.

Differences between the room versions:

Rooms created from 2014 though early 2019 use room version 1. Room version 1 has a bug which can cause the state of the rooms to reset. This is fixed in room version 2 and later. You should upgrade all version 1 rooms now.

Room versions 3 and 4 contained internal changes which don't affect users.

Room version 5 contained a minor security improvement.

Room version 6 contained more internal changes which don't affect users. This is currently the default room version for all new rooms. This version is widely supported by Synapse, Dendrite, and Conduit.

Room version 7 was the first to add a user facing feature, knocking. This allows a user to request access to a private room. No clients currently support this feature however.

Room version 8 was a buggy version. No new rooms should be created using version 8.

Room version 9 fixed the issues with version 8. Version 9 contains another user facing feature which is the ability to allow users in one room to join a separate private room. For example you could allow members of a Space to join all of the private rooms within that Space.

For more details on each room version, see https://spec.matrix.org/latest/rooms

10. I'm coming from Discord. What is Matrix like compared to it?

You can bridge a existing Discord channels to Matrix rooms with a public Discord bridge.

Hints and guides

Tombstoning a room

With tombstone you can decommission a room and point all it's users to join another room.

Create a new room

Create a new room. Make sure it's not encrypted. Go to Room settings / Advanced and copy-paste the Internal room ID somewhere. Add the alias(es) you removed to this room. Set other room settings to your liking and don't forget a nice room icon picture.

Create tombstone

This will move all Matrix users in the old room to the new room.

Go back to the old room.