Help center support eXpress
We have collected answers to all the most popular questions to make it easy and convenient for you to use eXpress. If you do not find the answer to your question, please contact our support team.
- eXpress Support
- Introducing eXpress & Glossary
- Installation & Updates
- Registering & Logging In
- User Profile
- Chats, Channels & Threads
- Contacts
- Tags & Tabs
- Files
- Calls & Conferences
- Push Notifications & Counters
- Fixing the Background Work on Android
- Bots & Smart Apps
- Diagnostic Information & Logs
- Clearing App Cache
- Аdmin Panel
- Technical Support for Admins
- Database Modifications Policy
- eXpress Documentation
- Privacy Policy
- Licensing conditions
Chats, Channels & Threads
- Classification of Chats and Their Properties
- History and End-To-End Encryption
- Working with Chats and Channels
- Working with Threads
- Working with Messages
- Chats, Channels & Threads Troubleshooting
Classification of Chats and Their Properties
- Personal — a chat with one user.
- Group — for communication between multiple users, where all participants can write and see each other.
- Channels — intended for publishing news; only administrators can write and see participants.
- Rooms — group chats that save correspondence and materials from group calls and conferences.
- Chat "Saved Messages" — intended for sending messages to yourself. It can be enabled or restored after deletion in the app settings. Any message can be sent to this chat via the context menu.
- Discussions — the ability to comment on messages in a group chat or channel.
- Global chats — special chats visible to all users of a specific server.
- Personal with contacts from the phone book.
- Personal with corporate contacts.
- Group with contacts from the phone book.
- Group with corporate contacts.
- Mixed chats with participants from servers of different organizations.
- Personal chats with chatbots.
- Look at the icon next to the chat name:
- Green globe — a chat with external users on a public server (RTS).
- Blue globe — a chat with users of corporate servers (CTS) from different organizations.
- Blue-green globe — a mixed chat with corporate and external users.
- Blue briefcase — a chat with users from the current or trusted corporate server.
- Blue megaphone — a channel with corporate users.
- Blue-green megaphone — a channel with corporate and external users.
- Blue bot — a personal chat with a corporate chatbot.
- Open Routing in the chat properties.
- Review the list of chat participants: participants are grouped by server affiliation.
Comparison of Group Chat and Channel 
- In a group chat, all participants can write; in a channel, only administrators can. A channel is convenient for publishing news, while a group chat is for communication among all participants.
In channels with more than 256 participants, the administrator will see a prompt before sending a message: "Publish? Are you sure you want to publish the message?". - In a group chat, any participant can view the chat composition and see system messages; in a channel, only the administrator can. Regular subscribers of the channel cannot see other participants.
- For regular participants, the sender of a message in a channel is the channel itself; for administrators, it is a specific user.
Storage and Deletion of Chats 
All chats are stored on the server in encrypted form. This ensures that data will not be lost, even if you end the session or reinstall the app — simply log in again, and the chats will load from the server to your device. On the device, chats are also stored in encrypted storage.
Chats are stored on the servers of each participant in the conversation. For example, if a participant from a new corporate server is added to a group chat, the chat will be copied to that server.
Access to chats will be lost only in the following cases:
- After deleting the account and re-registering, as the HUID will change.
- When logging out of the corporate server (only corporate chats will disappear).
- After resetting the personal password for encryption keys during app login (the history in all chats will be lost, but the chats themselves will remain).
Support for Data Leak Prevention Systems (DLPS) 
If your organization uses a data leak prevention policy, you may see clock icons on messages: yellow — the information is being checked for leaks, red — the message failed the check and cannot be sent. For details, contact your organization's support.
Limitations on the Number of Participants in a Group Chat or Channel 
In chats with more than 128 participants, only administrators are displayed in the participant list. To find other participants, use the search field.
If the corporate server is configured to create chats and channels with end-to-end encryption enabled by default, the created chat will have a limit of 128 participants. To remove this limitation, the chat administrator must disable End-to-End Encryption in the chat properties or contact the corporate server administrator. End-to-end encryption can only be re-enabled if the number of participants does not exceed 128 users.
In chats with end-to-end encryption disabled, there is a technical limit of 8000 users due to performance constraints. This limit will be increased in the future.
Catalog, Open and Closed Group Chats and Channels 
In the Catalog section above the chat list, there are open group chats, channels, and corporate bots. They are available to all users of the corporate server.
More about open and closed group chats and channels:
- Open chats and channels, available in the corporate chat catalog. These are corporate chats and channels that any registered user on the server can join via the Catalog section. Only the corporate server administrator can create an initially open chat or channel or convert a closed chat or channel to open.
For Administrators: How to Make a Chat or Channel Open on the Server
In the corporate server admin panel:- To create an open chat or channel, open the Open Chats section and click the Create button. The first participant of an open chat cannot be added in the admin panel. The first participant must join via the client app through the catalog.
- To convert a closed chat or channel to open, find the chat in the Chats section and click the Convert to Open Chat button. When converting a closed chat or channel to open, end-to-end encryption is automatically disabled. If necessary, it can be re-enabled later, but with consideration of participant limitations.
Chats are loaded onto the servers of each participant in the conversation. Therefore, to make a chat open on multiple servers, ensure that the chat has at least one user from the desired server. If not, add at least one such user to the chat. - Closed chats and channels. Corporate chats and channels are created as closed by default. Personal chats are always closed. Closed group chats and channels are intended for a limited audience and are therefore not available in the corporate chat catalog. New users are added to a closed group chat or channel by the chat administrator manually or via an invitation link. The corporate server administrator can make an open chat or channel closed in the admin panel.
For Administrators: How to Close a Chat or Channel on the Server
To close an open chat, in the admin panel, open the Open Chats section and click the trash icon next to the desired open chat, or in the Chats section, find the chat and on its page, click the Remove from Open Chats button.
Chat and Channel Administrators 
The creator of a group chat or channel can appoint other participants as administrators. Administrators, like the chat creator, can manage the participant list, change chat or channel information, and see channel subscribers. Avatars of administrator participants in the mention list (@) are marked with a star icon.
The creator or another chat administrator can revoke administrator rights from a participant via the participant's context menu (web/desktop) or by long-pressing them in the participant list (mobile clients).
For Administrators: Managing Chat Administrator Rights on the Server
You can manage chat administrator rights in the admin panel: in the Chats section, find the desired chat > open Users > toggletrue
and false
in the Administrator column for the desired users. Note that for this, the chat must have an administrator registered on this corporate server.
Routing — How Traffic Flows in a Chat 
Routing (routing scheme) is a visual schematic representation of message exchange routes between users in any type of chat. To view the routing scheme, open the chat properties and select Routing.
The scheme is generated relative to the chat participant viewing it. Lines on the diagram indicate paths from the server of the current user to the servers of other chat participants. Trusted corporate servers are connected by lines to each other.
Thus, chat routing allows you to see through which servers traffic is routed in a particular chat.
If the chat is within one server or between trusted servers, traffic will bypass the public regional transport server (RTS). If the chat is created between non-trusted servers or includes at least one user from an external server, traffic will go through the public regional transport server.
Global Chats 
The following types of global chats exist:
- Federated Global Chat eXpress. Named "eXpress." Contains news about new releases of eXpress; in the future, it will display confirmation codes and allow contacting support. Located on RTS and will be available to all users registered on RTS or whose corporate server (CTS) is connected to RTS. Currently, this global chat is disabled. The ETS administrator can disable the federated eXpress chat in the global chat settings on ETS.
- Global Chat ETS. Named as specified by the administrator. May contain news about new versions of the organization's branded ETS client app; in the future, it will display confirmation codes and allow contacting support. Located on ETS and available to all users whose corporate server is connected to ETS.
- Corporate Global Chat on CTS. Named as specified by the administrator. Contains information intended for all users of the corporate server. Located on CTS and available to all users of the corporate server.
- RTS users see only one global chat — the federated one located on RTS.
- CTS users may see two global chats: one federated from RTS and one corporate from CTS (if configured by the administrator).
- ECTS users may see two global chats (one from ETS, one from ECTS), only one of them, or neither (depending on administrator settings).
Only users appointed as administrators of the global chat bot in the corporate server admin panel can write in a global chat. See how to create a post in a global chat.
History and End-To-End Encryption
Chats with End-to-End Encryption Disabled and Enabled 
Depending on the end-to-end encryption settings, chats may have different limitations and capabilities.
Chats with End-to-End Encryption Disabled
In such chats (shared chats), you can add more than 128 participants, and the history from the moment encryption is disabled becomes available to new participants. The correspondence is encrypted with a common server key, rather than individual keys of each participant. This allows increasing the number of participants and opening access to the history, but reduces the level of security: if an attacker gains access to the server, they can steal the common key and decrypt the correspondence. Chats with end-to-end encryption disabled are marked with an unlocked padlock icon on the avatar.
Chats for group calls and conferences (rooms) have end-to-end encryption permanently disabled.
End-to-end encryption in channels can only be disabled through the app; the corporate server administrator does not have this capability.
Chats with End-to-End Encryption Enabled
In such chats, you can add no more than 128 participants, and the history is unavailable to new participants. The correspondence is encrypted with individual keys of each participant, making it highly secure. However, new participants will not be able to see old correspondence, as it was not encrypted with their keys. Re-encryption of old messages for new participants is not performed.
In personal chats, end-to-end encryption is always enabled and cannot be disabled.
-
❓Related Questions:
- Errors "Can't Decrypt" or "Can't Verify" on Messages
- Sync Stuck, Messages Not Sent or Not Visible in One Chat
- Sync Stuck, Messages Not Sent or Not Visible in All Chats
Opening History for New Participants 
To remove the participant limit and open the history for new participants, disable end-to-end encryption in the chat: in the application, open the chat or channel properties and turn off the End-to-End Encryption toggle. This can also be done when adding a new participant. The corporate server administrator can convert the chat or channel to open or disable end-to-end encryption.
Chats are loaded onto the servers of each participant. If there were no participants from a specific server at the time of sending messages, those messages will not be available to the first participant from that server. Subsequent users will see the history from the moment the first participant is added.
For new participants to see the entire history, the chat or channel administrator must:
- Add at least one user from all necessary servers.
The first user from a server can even be a bot. For example, if an organization has two servers, and there is already a group chat or channel on the first server, adding a bot from the second server will ensure the history is loaded onto the second server for future users. - Disable end-to-end encryption when creating the chat.
For Administrators: Open History Indicator in "Chat JSON"
In the admin panel, in the Chat JSON section, thesharedHistory:true
indicator can be used to determine if the chat history is open. This indicator appears when end-to-end encryption is disabled in the admin panel (available only for chats).
Clearing Chat, Channel, or Thread History 
The Clear Chat/Channel/Thread History command in the properties (card) of a chat, channel, or thread deletes all messages on all your devices, but not on the server — they remain there in encrypted form. The chat, channel, or thread will not disappear from the list but will move in time to the moment of creation. This may not happen immediately, as updating the local cache takes time.
To restore deleted history:
- Leave the chat or channel: delete it from the list or exit via the context menu.
- Return to the chat or channel via an invitation link or ask the administrator to add you back.
- The history will load from the server onto all your devices.
Working with Chats and Channels
How to Find the Desired Chat or Channel 
To find a personal chat, enter the user's name (full name) in the search field above the chat list. The user will be found even if you do not have a personal chat with them but share a group chat.
To view open corporate chats, channels, and bots, select Catalog above the chat list.
If a chat or channel is closed, it will not appear in the catalog. To join a closed chat, you need an invitation from the creator or administrator. You can also contact the corporate server administrator to be added via the admin panel.
-
❓Related Questions:
- Empty chat list on iOS after restarting the app
Creating a Personal Chat, Group Chat, or Channel 
To create a personal chat, follow these steps:
App Version | Actions |
---|---|
Android |
1. Open the contact card from the Contacts section > click the message button. 2. Find the contact through chat search. 3. Tap on the "pencil" icon at the bottom right of the chat list > find the user > open their card > tap the message button. |
iOS |
1. Open the contact card from the Contacts section > click the message button. 2. Tap on the "pencil" icon in the top right corner > find the user > open their card > tap the message button. |
Web/Desktop |
1. Open the contact card from the Contacts section > click the message button. 2. Find the contact through chat search. 3. Click the "plus" icon in the top right corner > Personal Chat > select the contact. |
To create a group chat or channel, follow these steps:
App Version | Actions |
---|---|
Android | Tap on the "pencil" icon at the bottom right of the chat list > select Group Chat or Channel > add users via search or create an invite link > specify the chat name. |
iOS | Tap on the "pencil" icon in the top right corner > then follow the same steps. |
Web/Desktop | Click the "plus" icon in the top right corner > then follow the same steps. |
How to Create an Open Chat Available in the Corporate Catalog 
A corporate server administrator can create an open chat. For more details: see the instructions above.
Adding Members to a Chat or Channel 
Members can be added in the following ways:
- Manually: The chat or channel administrator can add members via search in the chat card.
- Invite Link or QR Code: The administrator can create a link or QR code with access parameters:
- Users from their own and trusted corporate servers.
- Users from any corporate server.
- All users (including guests).
- Open Chat: A group chat or channel can be made open so users can find it via Catalog.
- Automatic Addition: Use the Invite Bot to automatically add newly registered users based on criteria.
- Via Admin Panel: The corporate server administrator can add users manually or by list.
For Administrators: Bulk Adding Users to a Chat by List
To add users in bulk via the Admin Panel:
1. Export all registered users: Users > Download as csv > select only cts_user > save the file.
2. In the admin panel, open the chat > Users > Import Users and upload the file.
Confidential Mode 
Confidential mode allows you to configure the deletion of messages by a timer after they are read or sent, both on clients and the server. This is the only way to delete messages on the server. In this mode, screenshot protection is also enabled (a warning appears in the mobile app when a screenshot is attempted), and file downloads are blocked (files can only be viewed in the chat, but not all formats are supported). Additionally, you can restrict access to messages to mobile devices only.
Confidential mode is only available in group and personal chats. It can be enabled and configured by any corporate participant if there is no participant from a public server in the chat. This mode is not available in channels. If a chat has more than 256 participants, stealth mode cannot be activated.
To view messages sent in confidential mode, activate it by clicking on any message with blurred content.
-
❓Related Questions:
- Chat with confidential mode enabled does not open on Android
- Error "Chat is not available in the PC version. Open it in the mobile client"
Polls in Group Chats and Channels 
In eXpress, polls are natively supported (in client versions 3.30 and server software 3.29). To create a poll, use the paperclip button in the chat.
If the user's client version is not updated, the Poll option in the paperclip button menu will be missing, and errors will be displayed in the chat: Message content is not supported by your application version, System message is not supported, or Unsupported attachment.
How to create a poll:
- Click the paperclip button in the chat or channel and select Poll.
- Set the poll parameters:
Poll Parameter Description Question Required field Answers 1 and 2 Required fields Quiz Mode Votes cannot be changed, and there is only one correct answer Anonymous Poll Voters will not be visible Multiple Choice If enabled, multiple answers can be selected Allow Forwarding the Poll If enabled, the poll can be forwarded to other chats and channels - After filling in the fields and configuring the parameters, click the checkmark button. The poll will appear in the chat.
The poll creator can manage it even through a forwarded message. Available actions:
- End the poll, cancel a vote, or select other commands in the message context menu.
- View results using the button below the poll.
- Download results in CSV format, which will be sent to personal messages from Poll Bot.
For Poll Bot to send poll results, the administrator must enable it in the CTS admin panel under "Internal Bots".
Creating Polls via Vote Bot in Previous Versions of the App
In client versions prior to 3.30 and server software prior to 3.29, Vote Bot was used to create polls. It can be found in the corporate chat catalog if it is installed on CTS.How to create a poll using Vote Bot:
- 1. Message the bot in a personal chat and create a poll.
- 2. Add the bot to the group chat or channel where the poll is to be conducted. In channels, the bot must be an administrator.
- 3. Complete the poll creation in the chat with the bot by following the instructions.
Adding Stickers 
You can add stickers in the following ways:
- Through a sticker sent by someone in the chat: click on the sticker to add the pack to your collection.
- Through a special bot that also allows transferring stickers from Telegram (animated stickers are not supported). If the bot is not available in the corporate chat catalog, contact the server administrator through your organization's support.
- Create your own sticker pack via the server admin panel in the Stickers section. To do this, contact your corporate server administrator.
Sending a Message or File to Yourself 
To send a message or file to yourself, use the Saved Messages chat. Any message can be sent via the context menu: in the web or desktop version, right-click on the message, and in the mobile app, press and hold the message.
How to Return to a Chat If You Deleted It or Logged Out 
If you deleted a personal chat, you can recreate it from the contacts list.
If you deleted a group chat or channel, the administrator or creator of the chat can restore your access. The administrator can also send you an invite link. Alternatively, the corporate server administrator can add you manually through the admin panel.
If you log out of the corporate server (request logout and the server administrator confirms it), you will lose access:
- to all corporate chats (you will be removed from the list of participants);
- to correspondence in personal chats that occurred while you were on the corporate server (correspondence from your personal account will remain).
How to Restore a Group Chat or Channel That All Participants Have Left 
If all participants have left a group chat or channel, it can be restored. To do this, contact your organization's administrator.
For Administrators: Restoring a Group Chat/Channel That All Participants Have Left
Find and open the group chat or channel in the admin panel, click the Make Chat Public button — the chat will appear in the CTS catalog. Ask any CTS user to join the chat via the Catalog section. Then click the Users button on the chat page in the admin panel and make the joining user an administrator by clicking the false label in the Administrator column. This user will be able to add other participants and create an invite link.⚠️ A group chat or channel can only be made public if it had an administrator from the current server.
How to Create a Post in the Global Chat 
If the global chat is enabled by the administrator and you have been assigned as the administrator of the notification bot on the corporate server, you will be able to send messages to the global chat that will be visible to all server users:
- Start a chat with the Notifications bot in one of the following ways:
- Open the global chat in the app. Click the chat name to open its properties. In the participant list, find Notifications bot > in the context menu, select Send Message or click on the bot and in its properties, click the Write button.
- Or find the Notifications bot in the corporate catalog > a chat with the bot will open.
- If necessary, click the Start button in the chat with the bot.
- Send the command
/start_post
. - Send any number of messages to the bot that you want to post in the global chat. You can edit and delete them within 48 hours before sending the completion command. All message types are supported except geolocation. Contacts and voice messages will appear as attached files, and links will be without previews.
- When the messages are ready, send the
/finish_post
command, then click Confirm (Confirm). - Your messages will appear in the global chat.
Messages sent directly to the global chat, not through the bot, are only visible to the sender. This feature is reserved for the future: a bot is being developed to support users writing in the global chat.
Reactions and threads are not supported by the global chat.
Using Tags for Chats and Messages
See also tags and tabs.Working with Threads
Threads: General Information 
Threads allow participants to comment on messages in group chats or channels without cluttering the main chat or channel. This is especially useful if the participant does not have administrator rights. A thread is tied to the original message but is essentially a separate group chat.
Client and server versions supporting threads:
- Web/Desktop 2.5
- iOS 2.20
- Android 2.20
- Backend 2.8
-
❓Related Questions:
- “Threads Enable Error” or “Threads Feature Not Supported”
How Threads Work 
A thread is a chat linked to the original message. In threads, you cannot make calls, view routing, or pin messages. The thread starts with the original message and the author's name, followed by a horizontal bar indicating the beginning of the thread. Below are the participants' comments, starting from the oldest to the newest.
From the context menu of the original message, you can navigate to the chat or channel where it is located.
A thread cannot be created without an original message. Also, you cannot create a thread within another thread.
Searching for text in the main chat does not include messages from threads. To find text in a thread, you need to open it first.
Through the context menu of messages forwarded from a thread, you can navigate to the original thread.
When the original message is deleted, the thread is not deleted. You can access the thread through the placeholder
This message has been deleted
. If this placeholder is deleted, the thread will also be removed for the user. When a chat or channel is deleted, the user is automatically unsubscribed from all threads in it. If the user returns to the chat or channel, they will need to resubscribe to the threads.
Any message from any chat or thread can be forwarded to a thread if you are subscribed to it.
By default, notifications for threads in channels are disabled, while in group chats, they inherit the notification settings of the main chat.
How to Find and Subscribe to Threads 
You become a participant in a thread (subscribe to it) automatically in the following cases:
- You are a participant in the original group chat or channel where the thread was created, and auto-subscription to threads is enabled (either by default or for the specific chat or channel);
- You are mentioned in the thread using the
@
symbol; - You write in the thread yourself;
- You subscribe to the thread through its card.
You will stop being a participant in a thread (unsubscribe) in the following cases:
- You delete the original chat/channel or the thread itself from the chat list;
- You are removed from the chat or channel;
- You unsubscribe from the thread through its card.
All threads in which you participate are displayed in the Threads section and in the chat list (there is a setting to display threads in the general chat list).
Threads in which you do not participate can be identified by the comment counter below the message in the group chat or channel.
To subscribe to a thread, find the message it is tied to, open the thread card, and click Subscribe to Thread.
In the application settings (starting from version 3.32), you can enable or disable global auto-subscription to threads: open settings (avatar button) > Chat and Channel Settings > Auto-Subscribe to Threads > In Chats/In Channels.
How to Create a Thread 
Before creating a thread, make sure that the thread feature is enabled in the group chat or channel. The creator or administrator can enable threads: open the chat card, select Settings, and toggle on Threads.
To start a thread, select Start Thread (Comment) in the context menu of the message (long press on mobile). Leave a comment, and a comment counter will appear under the message.
Threads cannot be created for system messages, messages consisting of emojis or stickers, or messages sent in stealth mode.
After adding a comment, you are automatically subscribed to the thread, and it appears in the chat list and the Threads section.
If the thread is created in a channel, you need to manually subscribe to it: open the thread card and select Subscribe to Thread.
Managing Threads 
The header Thread in…
at the top of the thread opens its card (properties).
The following features are available in the thread card:
- Shared Files — view all attachments sent in the thread;
- Search in Thread — search for text within the thread;
- Load All Messages — force load all comments to the device;
- Clear Thread History — delete all comments;
- Join Thread/Leave Thread — subscribe or unsubscribe from the thread; below is the list of participants (if the thread is created in a group chat).
In the context menu of the thread (right-click on web/desktop or long press on mobile), you can:
- Mark the thread as unread;
- Configure notifications;
- Pin the thread to the list;
- Leave the thread;
- Clear message history.
Working with Messages
Formatting Message Text 
You can format message text in the application in several ways: through the context menu of the selected text, using keyboard shortcuts (e.g., Ctrl+B, Ctrl+U), or by using special markup symbols — partial support for the Markdown language is available.
The maximum number of characters in a single message is 4096. If the text exceeds this limit, the message will automatically be split into multiple parts while preserving formatting.
Style
|
Notation
|
Bold text
|
**bold text**
|
Italic text
|
*italic text*
|
Bold italic
|
***bold italic***
|
Bulleted list
|
* 1st item
* 2nd item
* 3rd item
|
Strikethrough text
|
~~strikethrough~~
|
Code block without language specification
|
```
code
```
|
Code block with language specification1
|
```language
code
```
|
Inline code
|
`inline code`
|
Links
|
[link text](www.example.com)
|
Tags
|
#tag
|
Mentions ("mentions")2
|
@chat participant
@All (notify all participants)
@@non-chat participant
|
1 Languages with syntax highlighting support: sh, zsh, bash, basic, clojure, cmake.in, cmake, coffeescript, coffee, cson, iced, patch, cpp, cs, css, diff, jinja, django, docker, dockerfile, delphi, elixir, elm, erlang, go, haskell, ini, java, js, jsx, javascript, json, kotlin, less, lisp, llvm, lua, makefile, matlab, nginx, ocaml, perl, php, ps, powershell, prolog, python, r, rb, gemspec, podspec, thor, irb, ruby, rs, rust, scala, scss, shell, sql, swift, tex, twig, ts, typescript, vbs, vbscript, xml, yml, yaml.
2 More about mentions and their limitations:
- A mention with a single
@
symbol will notify the user, even if they have disabled notifications in the chat or discussion. Only chat participants can be mentioned. This works as a direct reference to a bot or user. - A mention with two
@@
symbols is used to send a contact or mention a user in the context of a conversation. The mentioned user will not receive a notification, but the recipient will be able to open the contact card and message them. Using@@
, you can mention even those who are not in the chat. The contact search is similar to the search in the Contacts section, allowing you to mention a user from a trusted server or a shared chat. The chat or channel administrator can add the mentioned user to the participant list via the context menu. - In channels, single mentions (including
@All
) are not available. With@
, you can only mention a bot if it is appointed as a channel administrator. Double mentions are supported in channels. - The
@All
mention does not work in chats and discussions with more than 256 participants. If there are fewer participants, the mention will work.
-
❓Related questions:
- Some characters disappear in messages after sending
Editing, Deleting, and Forwarding Messages 
To edit, delete (for yourself or for all participants), or forward a message:
- in the web or desktop version of the app, right-click on the message to open the context menu with the relevant commands;
- in the mobile versions of the app, press and hold your finger on the message to open the context menu.
In the desktop or web app, you can optionally collapse the chat list by clicking the arrow in the lower left corner (above the version number) or expand the app window to full screen or just slightly wider — message selection checkboxes will become visible in the chat window. Use them to mark the messages you want to forward.
In group chats and their discussions, an administrator can delete any messages for all participants without time restrictions and can only edit their own messages within 48 hours. In channels and their discussions, an administrator can delete and edit their own messages and the messages of other channel administrators (if end-to-end encryption is disabled in the channel) without time restrictions, except for messages forwarded to the channel from other users — these cannot be edited either during forwarding or after sending.
A regular chat participant and participants in its discussions can edit and delete their own messages for everyone within 48 hours of sending. In channels and their discussions, regular participants (subscribers) cannot write messages.
Pinning a Message 
Any chat participant or channel administrator can pin one message to the top. A message can be unpinned or replaced by another pinned message by an administrator participant or the participant who originally pinned the message.
Chats, Channels & Threads Troubleshooting
"Can't Decrypt" Errors on Messages 
Most often, such errors occur due to temporary network issues. To resolve them, try logging off and back into the app or clearing the cache on the problematic device.
If the error appears for one of the participants in a group chat, follow these steps:
- If all participants see the error message, ask the sender to end the session in the settings and log back into the app from the device from which the message was sent.
- If the error is visible only to one participant, ask them to end the session and log back into the app.
- If all participants see the error in your message, end the session and log back into the app.
- If the error is visible only to one recipient, ask them to end the session and log back into the app.
If the described actions do not help, and the error repeats on all devices, the issue may be related to your cts encryption keys. Contact your organization's support team or eXpress support for assistance.
⚠️ We strongly recommend updating client apps to the latest versions. This will prevent most new issues with encryption keys.
For Administrators: Checking Encryption Keys
DiagnosticsIf a user has the “Can't Decrypt” error on all devices or re-logging into the session did not help, collect diagnostics:
User's HUID | Open the user's active profile in the admin panel, copy the HUID, and send it to eXpress support. |
User's keys of type rts from RTS
|
This information can only be provided by eXpress support. |
User's keys of type cts from RTS
|
This information can only be provided by eXpress support. |
User's keys of type cts from CTS
|
Open the user's profile in the CTS admin panel, click the Keys button at the top of the screen. Use the search (Ctrl/Cmd + F) for the word “cts” to find keys of type cts . Copy the key ID, issue date, and version number, and send them to support.
|
Chat JSON of the problematic chat
Check the cts_key_id key
|
Open the user's profile in the CTS admin panel, go to the Chats section, find the problematic chat, and click Chat JSON. Copy all the content of the opened page and send it to eXpress support. |
Two message_new events
(sender and recipient) of the problematic message
Check the sender_key_id key
|
Open the user's profile in the CTS admin panel, go to the Chats section, find the problematic chat, and open Events Table. Find an event of type message_new (not routing_changed !) and copy its content.
⚠️ If the chat is inter-server, request Chat JSON and
message_new from each server where this chat exists.
|
Solution
- 1. The latest
cts
key on the user's CTS must match the key on RTS.- A. If the keys are mixed up by version or time, contact eXpress support for instructions on how to fix them.
- B. If the
cts
key is missing on CTS but present on RTS:- If the user has reset their keys (the number of
rts
keys on RTS has changed), ask them to reset their password or delete their account. Ensure that the new key appears on CTS. - If the keys were not reset, and the user's CTS backend is version 3.11 or higher, perform a repair on RTS through eXpress support. If the backend is below 3.11, update it, and then perform the repair.
- If the user has reset their keys (the number of
- 2. Ensure that the latest
cts
key is present in the Chat JSON of each chat involving the user. If the key is missing or not current, perform a repair on the server. - 3. Check that the latest
cts
key is present in each chat message (message_new
events). If the key is incorrect, perform a repair for the message sender (Sender HUID/UDID
in themessage_new
event) on their server.
cts
with the highest version number and the latest issue date is considered current. If the key is not current, fixing the chat cache (repair) may help. For this, there is a Recovering Keys in Chats button in the user's profile (available in version 3.23 and above) or Troubleshooting under the user list (available in version 3.24 and above). They allow fixing keys on the current CTS, even for users from another CTS.
If you have been provided with a script that fixes keys, the command
Messaging.Troubleshooting.Chats.repair_user("user_huid")
can be used for multiple users.
Sync is stuck, messages are not sent or not visible in one chat 
Error messages may appear: “Updating” or “You can't send messages because you are not member of this channel anymore.”
Try the following steps:
- If the chat is a group chat, try adding a new user to the chat or assign one of the participants as an administrator. This action may refresh the chat state and resolve the issue.
- If the chat is personal, create a group chat with the same participants and check if the messages are visible. If the messages are displayed, delete the old personal chat for both participants and recreate it via contacts.
- If the issue is related to trusted servers (e.g., messages are not visible between users of certain servers), contact the corporate server administrator through your organization's support or eXpress support.
For Administrators: Assisting a User with One Problematic Chat
DiagnosticsMost often, the issue arises due to the chat being in an inactive state (e.g., after an incorrect user logout or server deletion from RTS). To resolve this, the chat ID is required. It can be obtained in several ways:
- If the chat is inter-server (cts1+cts2 or rts+cts), and the chat is available in the admin panel on one of the servers, copy its ID from there.
- If the chat is on one server and is not displayed in the admin panel (inactive chats are hidden), use the web/desktop application:
- Open Settings > About and click the logo several times to open the engineering menu.
- Enable the Debug Info toggle and close the engineering menu.
- In the problematic chat, right-click any message and select Debug Info.
- In the panel on the right, find the
groupChatId
value — this is the chat ID.
groupChatId
by the participants' HUID.
- Open any other chat in the admin panel.
- In the browser's address bar, replace the chat ID with the previously obtained
groupChatId
. - The desired chat will open with the parameter Active:
False
.
Solution
If the chat is displayed as inactive in the admin panel, perform a chat repair using its ID. This will activate the chat and make it visible in the admin panel.
The command
Messaging.Troubleshooting.Chats.resync_chat_servers("chat_ID")
in the script from support can be called multiple times with different chat IDs if needed.
If the chat was found in the admin panel, wait for the sync to complete so that the chat loads in the client. If the backend version is below 3.7, update it. If the sync does not occur, see the next issue.
Sync is stuck, messages are not sent or not visible in all chats 
In all chats, error messages may appear: “Updating” or “You can't send messages because you are not member of this channel anymore.” Also, in this case, a corporate user (blue) in the routing of participants in all their chats may be incorrectly displayed as a public user (green). Another sign: the last “online” status of the problematic user may be far in the past, even though they were recently active.
To resolve the issue, it is necessary to fix the chat cache on the corporate server where the error occurred. This can be done through your organization's support (if the server belongs to it) or through eXpress support.
For Administrators: Fixing the Chat Cache
DiagnosticsCheck the
Conn type
value of the user in the admin panel of their home server:
- Open the user's profile in the CTS admin panel.
- Click the Chats button at the top of the screen.
- Open any chat and click the Users button.
- Find the user in the list and check the
Conn type
value.
Solution
If the
Conn type
does not match the actual state (e.g., rts
is displayed instead of cts
), perform a repair on the user's server.
The command
Messaging.Troubleshooting.Chats.repair_user("HUID_of_the_problematic_user")
in the script from support can be called for multiple users if needed.
If the
Conn type
is correct, and you cannot resolve the issue, collect information on the issues described above and contact eXpress support.
No chat history in one or several specific chats on all devices 
If the chat history is missing in one or several group chats, but notifications are received, and the issue occurs on all devices (while other participants see the chats normally), contact your organization's support team to fix your chats.
For Administrators: Fixing the Epoch in a Chat
In backend version 3.10, the chat storage structure was changed: now their history is divided into epochs. The issue is resolved by clearing theend_at
value of the epoch.
Diagnostics
Signs of the issue:
- Backend version 3.10 and above.
- Chat history is missing in one or several group chats.
- Occurs on all devices.
- In the epoch query output (see below), there are no epochs with an empty
end_at
, i.e., all epochs are closed. - Real-time events are displayed (sent a test message — saw it), but after re-logging into the app or reloading the page, they disappear + the event has a user key.
- Other participants see the chats normally.
- Push notifications are received.
Solution
No chat history in a group call or conference (room) chat on all devices 
See instructions for fixing epochs in a specific chat.
Messages sent in a bot-created chat hang with an error 
The issue may be caused by desynchronization of keys on the server and in client applications (DLPS key). To resolve this, contact your organization's support team or eXpress support.
For Administrators: Fixing DLPS Key Synchronization
Restarting the messaging container will reset the cache and update the keys. Follow these steps:- 1. In the admin panel of the corporate server where the bot is located, collect the logs of the messaging container.
- 2. Reproduce the issue in the client application. If the
keys_error
error appears in the container logs, restart the messaging container using the command:
cd /opt/express && dpl --dc restart messaging
Messages are displayed as undelivered, although the recipient on iOS receives them 
The sender sees messages as undelivered (with one checkmark), although the recipient on iOS has read them.
To fix this, the recipient on iOS needs to:
- Open Settings on iOS.
- Go to Notifications.
- Find the app and enable at least one of the notification display options: Lock Screen, Notification Center, Banners.
Incorrect time in messages, “online” status is displayed incorrectly 
Ensure that the following are enabled on the device:
- Automatic time zone setting.
- Automatic time synchronization with the cellular network or NTP server.
Empty chat list on iOS after restarting the app 
If after updating the app on iOS the chat list is empty and loads slowly, the issue may be related to the app's data storage. Reinstall the app to fix it.
For Advanced Users: Collecting Logs for Diagnostics
Collect general logs in the mobile app on iOS after clearing them. In the logs, look for the error:Type: REALM ERROR
Message: can't instantiate migrated encrypted Realm, will create in-memory Realm instead
Payload:
exception: Migration is required due to the following errors:- Property 'Attachment.deepLinkData' has been added.- Property 'Chat.positionEventInsertedAt' has been added.- Property 'Message.buttonsAutoAdjust' has been added.- Property 'Message.sendStateRaw' has been added.- Property 'Message.needResend' has been removed.
The issue is related to the app's database (Realm). Reinstalling the app will resolve it.
Chat with confidential mode enabled does not open on Android 
For confidential mode in a chat on Android, the app requires access to storage (files). This is necessary to prevent bypassing the screenshot control system.
When opening a chat in confidential mode for the first time, select Allow. Do not tap Don't ask again or Deny.
Error “Chat is not available on desktop. Open chat on mobile device” 
This error occurs if one of the chat participants has enabled privacy mode with the Mobile-only access setting. To fix it, open the chat card, go to Confidential Mode, and disable Mobile-only access.
“Threads enabled error” or “Threads feature is not supported” 
If a chat or channel has a participant with a backend version below 2.8, an error will appear when trying to enable threads. Ensure that all participants have server software version 2.8 or higher. If outdated information about a participant with an old backend is cached in the chat, try adding another user to the chat or making one of the participants an administrator to refresh the chat cache.
Some characters disappear in messages after sending 
Special characters such as `*_
are used for text formatting. To send text without distortion, format it as code.