Hi, we’re attempting to upgrade from Chirpstack 3 to 4, but running into an error on startup connecting to our MQTT broker that didn’t previously occur.
Error logs:
chirpstack_1 | Sep 22 19:59:52.705 INFO chirpstack::gateway::backend: Setting up gateway backends for the different regions
chirpstack_1 | Sep 22 19:59:52.705 INFO chirpstack::gateway::backend: Setting up gateway backend for region region_name=us915_0 region_common_name=US915
chirpstack_1 | Sep 22 19:59:52.708 INFO chirpstack::gateway::backend::mqtt: Connecting to MQTT broker region_name=us915_0 server_uri=ssl://[HOSTNAME]:8883 clean_session=false client_id=chirpstack-v4-us915
chirpstack_1 | Error: New MQTT gateway backend error
chirpstack_1 |
chirpstack_1 | Caused by:
chirpstack_1 | 0: Connect to MQTT broker
chirpstack_1 | 1: [-6] NULL Parameter
Working v3 chirpstack-network-server config:
[network_server.gateway.backend.mqtt]
server="ssl://[HOSTNAME]:8883"
username="[USERNAME]"
password="[PASSWORD]"
qos=0
clean_session=true
client_id="chirpstack-ns"
Not-working v4 chirpstack config:
# MQTT configuration.
[regions.gateway.backend.mqtt]
# Event topic template.
event_topic="gateway/+/event/+"
# Command topic template.
command_topic="gateway/{{ gateway_id }}/command/{{ command }}"
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
server="ssl://[HOSTNAME]:8883"
# Connect with the given username (optional)
username="[USERNAME]"
# Connect with the given password (optional)
password="[PASSWORD]"
# Quality of service level
#
# 0: at most once
# 1: at least once
# 2: exactly once
#
# Note: an increase of this value will decrease the performance.
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
qos=0
# Clean session
#
# Set the "clean session" flag in the connect message when this client
# connects to an MQTT broker. By setting this flag you are indicating
# that no messages saved by the broker for this client should be delivered.
clean_session=false
# Client ID
#
# Set the client id to be used by this client when connecting to the MQTT
# broker. A client id must be no longer than 23 characters. If left blank,
# a random id will be generated by ChirpStack.
client_id="chirpstack-v4-us915"
# CA certificate file (optional)
#
# Use this when setting up a secure connection (when server uses ssl://...)
# but the certificate used by the server is not trusted by any CA certificate
# on the server (e.g. when self generated).
ca_cert=""
# TLS certificate file (optional)
tls_cert=""
# TLS key file (optional)
tls_key=""
I believe this “NULL Parameter” error occurs because we’re attempting to connect using SSL but don’t specify either ca_cert
, tls_cert
, or tls_key
. That being said we’ve never specified those for chirpstack v3 and have been able to connect without issue. I tried specifying a value for ca_cert
, and got a different more generic error:
chirpstack_1 | Error: New MQTT gateway backend error
chirpstack_1 |
chirpstack_1 | Caused by:
chirpstack_1 | 0: Connect to MQTT broker
chirpstack_1 | 1: [-1] TCP/TLS connect failure
Is it (and should it be) required to specify those variables to connect to an MQTT broker using SSL? In our case we’re using letsencrypt rather than self-signed SSL certs. Thanks in advance for your help!