> ## Content Index
> Fetch the complete content index at: https://www.process-one.net/llms.txt
> Use this file to discover other available public pages before exploring further.

# ejabberd 25.04
- URL: https://www.process-one.net/blog/ejabberd-25-04/
- Published: 2025-04-16T17:21:45.000Z
- Updated: 2025-04-16T17:21:45.000Z
- Description: Just a few weeks after previous release, ejabberd 25.04 is published with an important security fix, several bug fixes and a new API command.
- Author: Jérôme Sautret
- Tags: ejabberd, XMPP, Release

Just a few weeks after previous release, ejabberd 25.04 is published with an important security fix, several bug fixes and a new API command.

**Release Highlights:**

- **[Fix handling multiple occupant-id](#occupantid)**
- **[Kick\_users API command](#kickusers)**

If you are upgrading from a previous version, there are no changes in SQL schemas, configuration, API commands or hooks.

**Other contents:**

- **[Acknowledgments](#ack)**
- **[Improvements in ejabberd Business Edition](#ebe)**
- **[ChangeLog](#changelog)**
- **[ejabberd 25.04 download & feedback](#download)**

Below is a detailed breakdown of the improvements and enhancements:

##  mod\_muc\_occupantid: Fix handling multiple occupant-id

Fixed issue with handling of user provided occupant-id in messages and presences sent to muc room. Server was replacing just first instance of occupant-id with its own version, leaving other ones untouched. That would mean that depending on order in which clients send occupant-id, they could see value provided by sender, and that could be used to spoof as different sender.

##  New kick\_users API command

There is a new API command [kick\_users](https://docs.ejabberd.im/developer/ejabberd-api/admin-api/?ref=process-one.net#kick%5Fusers) that disconnects all the client sessions in a given virtual host.

## Acknowledgments

We would like to thank the contributions to the source code, documentation, and translation provided for this release by:

- [Travis Burtrum](https://github.com/moparisthebest?ref=process-one.net) for reporting problem in occupant-id
- [Marcos de Vera Piquero](https://github.com/marc0s?ref=process-one.net) for the new `kick_users` API command
- [Besnik Bleta](https://github.com/ujdhesa?ref=process-one.net), updated the Albanian translation
- [Sketch6580](https://hosted.weblate.org/user/Sketch6580/?ref=process-one.net), updated the Chinese translation
- [Nautilusx](https://hosted.weblate.org/user/nautilusx/?ref=process-one.net), updated the German translation
- [Silvério Santos](https://github.com/SantosSi?ref=process-one.net), updated the Portuguese translation
- [Wellington Uemura](https://github.com/wtuemura?ref=process-one.net), updated the Portuguese (Brazil) translation
- [Максим Горпиніч](https://hosted.weblate.org/user/maksimgorpinic2005a/?ref=process-one.net), updated the Ukrainian translation

And also to all the people contributing in the ejabberd chatroom, issue tracker...

## Improvements in ejabberd Business Edition

For customers of the [ejabberd Business Edition](https://www.process-one.net/en/ejabberd/), in addition to all those improvements and bugfixes:

- Bugfix on `max_concurrent_connections` for `mod_gcm`, `mod_webhook` and `mod_webpush`

##  ChangeLog

This is a more complete list of changes in this ejabberd release:

#### Security fixes

- `mod_muc_occupantid`: Fix handling multiple occupant-id

#### Commands API

- `kick_users`: New command to kick all logged users for a given host

#### Bugfixes

- Fix issue with sql schema auto upgrade when using `sqlite` database
- Fix problem with container update, that could ignore previous data stored in `mnesia` database
- Revert limit of allowed characters in shared roster group names, that will again allow using symbols like `:`
- Binary installers and `ejabberd` container image: Updated to Erlang/OTP 27.3.2

### Full Changelog

[https://github.com/processone/ejabberd/compare/25.03...25.04](https://github.com/processone/ejabberd/compare/25.03...25.04?ref=process-one.net)

##  ejabberd 25.04 download & feedback

As usual, the release is tagged in the Git source code repository on [GitHub](https://github.com/processone/ejabberd?ref=process-one.net).

The source package and installers are available in [ejabberd Downloads](https://www.process-one.net/en/ejabberd/downloads/) page. To check the `*.asc` signature files, see [How to verify ProcessOne downloads integrity](https://www.process-one.net/blog/verifying%5Fprocess%5Fone%5Fdownloads%5Fintegrity/).

For convenience, there are alternative download locations like the [ejabberd DEB/RPM Packages Repository](https://repo.process-one.net/?ref=process-one.net) and the [GitHub Release / Tags](https://github.com/processone/ejabberd/tags?ref=process-one.net).

The `ecs` container image is available in [docker.io/ejabberd/ecs](https://hub.docker.com/r/ejabberd/ecs/?ref=process-one.net) and [ghcr.io/processone/ecs](https://github.com/processone/docker-ejabberd/pkgs/container/ecs?ref=process-one.net). The alternative `ejabberd` container image is available in [ghcr.io/processone/ejabberd](https://github.com/processone/ejabberd/pkgs/container/ejabberd?ref=process-one.net).

If you consider that you've found a bug, please search or fill a bug report on [GitHub Issues](https://github.com/processone/ejabberd/issues?ref=process-one.net).