1.16.0 Breaking Changes

NodeBB Development
  • NodeBB no longer supports NodeJS 10 and below!

    Please see the following issues for breaking changes to plugins and themes.

    If you have plugins that are affected, please update your plugin and add the below to your package.json

    "nbbpm": {
       "compatibility": "^1.16.0"
  • utils.slugify will be removed in 1.16.0. Use the slugify module instead

    Client side

    require(['slugify'], function (slugify) {
       console.log(slugify('string to slugify'));

    Server side

    const slugify = require('slugify');
    console.log(slugify('string to slugify'));

    Server side in a pluign

    const slugify = require.main.require('./src/slugify');
    console.log(slugify('string to slugify'));


  • Socket.IO dependency has been upgraded to 3.x.

    If you are using clustering redis is now a requirement. Simply install and configure redis in your config.json block. If you were already using redis as your datastore or for sessions no changes are necessary.

    The other change is for the socket.io:origins property in config.json. If you were using this property to allow access to websockets from multiple domains you will have to convert it to an array.

    Before 1.16.0

      "socket.io": {
         "origins": "https://community.nodebb.org:*, https://nodebb.org:*"

    After 1.16.0

      "socket.io": {
         "origins": ["https://community.nodebb.org:*", "https://nodebb.org:*"]

    For a list of all available options see here

    No changes are necessary if you weren't using this property.

  • The topic thumbnail functionality has been refactored heavily and now supports multiple topic thumbnails.

    Any plugins directly altering composer.tpl should rebase/redo their changes against the newest composer.tpl from nodebb-plugin-composer-default

    API calls to load category or topic now show thumbs array in addition to the old thumb property. thumb is now deprecated, and will be removed in v1.17.0

  • We have received reports that after upgrading to v1.16.0, the amount of websocket connections is very high relative to pre-upgrade

    This is due to older socket.io clients (running on version 2) attempting to connect to the new socket.io 3. These protocols are incompatible, and so the connection is rejected, and NodeBB was configured to try indefinitely.

    This is ok. Over time, as your users close their browser windows (or refresh), they will automatically start using the latest version, and socket usage will return to normal levels.

    If you are worried about the excessive traffic, you can configure a nginx condition to drop requests with the query string ?EIO=3. Please see the issue linked above for more information.

  • barisB baris unpinned this topic on

Suggested Topics