MQTT5.0 [1] [2]

The major functional objectives are:

Enhancements for scalability and large scale systems in respect to setups with 1000s and millions of devices.
Improved error reporting (Reason Code & Reason String)
Formalize common patterns including capability discovery and request response
Extensibility mechanisms including user properties, payload format and content type
Performance improvements and improved support for small clients