-
Notifications
You must be signed in to change notification settings - Fork 0
06 Troubleshooting
Common issues and solutions for MQTTProbe.
Causes:
- Broker is not running or unreachable
- Incorrect hostname or port
- Wrong username/password
- TLS certificate not trusted
Solutions:
- Verify the broker is running:
mosquitto -hor check broker logs - Test connectivity:
telnet <host> <port>ornc -zv <host> <port> - Check credentials are correct
- If using TLS with self-signed certs, enable "Allow untrusted certificate" in connection settings
- Check firewall rules allow the connection
Causes:
- Network instability
- Broker keepalive timeout
- NAT/firewall timeout
Solutions:
- MQTTProbe auto-reconnects every 5 seconds — check if it recovers
- Increase broker keepalive timeout if needed
- Check for NAT/firewall timeout settings on intermediate devices
Causes:
- Wrong base path (default:
mqtt) - Reverse proxy not configured for WebSocket upgrade
- Port blocked
Solutions:
- Verify the WebSocket base path matches your broker configuration
- Ensure your reverse proxy supports WebSocket upgrade (see Docker Deployment docs)
- Try the plain MQTT protocol as a test to isolate the issue
Causes:
- Broker ACL (Access Control List) is blocking the subscription
- Topic filter is invalid
Solutions:
- Check your broker's ACL configuration (e.g., Mosquitto
acl_file) - Ensure the broker user has permission to subscribe to the topic
- Verify the topic filter syntax is correct
Causes:
- Auto-resubscribe is disabled
Solution:
- Enable auto-resubscribe in the UI preferences (subscribed topics are restored from the saved connection profile)
Causes:
- Broker is publishing messages faster than MQTTProbe can process them
- Default limit is 50,000 messages/second
Solutions:
- Increase
MaxMessagesPerSecondinconfig/appsettings.jsonunderPerformanceSettings - Use topic filtering to reduce incoming traffic
- Subscribe to more specific topic filters instead of wildcards
Causes:
- Too many unique topics in the topic tree
Solutions:
- Use more specific topic subscriptions to reduce unique topics
- Clear the topic tree by disconnecting and reconnecting
# Check container logs
docker compose logs mqttprobe
# Common cause: config directory permissions
docker compose down
docker compose up -dCauses:
-
AllowedHostsenvironment variable doesn't include your hostname - Reverse proxy not configured
Solutions:
- Set
AllowedHostsin your environment or compose file - Use the production compose file with Caddy:
docker compose -f docker-compose.prod.yml up -d - See Docker Deployment docs for custom reverse proxy configuration
If MQTTS (TLS, port 8883) connections fail on Docker Desktop for Windows, this is a known WSL2 MTU issue. The production compose file already sets MTU to 1400. If you're using a custom network, add:
networks:
your-network:
driver: bridge
driver_opts:
com.docker.network.driver.mtu: 1400Causes:
- Config file is corrupted or invalid JSON
- File permissions prevent reading
Solutions:
- Check the JSON syntax in
config/appsettings.json - Verify file permissions:
ls -la config/appsettings.json - Delete the config file and re-run setup (this will lose saved connections)
Causes:
-
config/secrets.datis corrupted or was created with a different Data Protection key
Solutions:
- Delete
config/secrets.dat— encrypted passwords will be lost, but connections will still work (you'll need to re-enter passwords) - If using Docker, ensure the
dp-keys/directory is preserved across container restarts
Causes:
- Malformed protobuf payload
- Non-Sparkplug B message on a
spBv1.0/topic
Solutions:
- Verify the publisher is sending valid Sparkplug B protobuf payloads
- Check the topic format matches
spBv1.0/{group}/{verb}/{node}[/{device}]
Cause:
- Received data messages (NDATA/DDATA) but never received an NBIRTH
Solutions:
- Click Request Rebirth to ask the node to send a new NBIRTH
- Ensure the node's Sparkplug B birth process is working correctly
Cause:
- Node is offline or not responding to NCMD messages
Solutions:
- Verify the node is online and connected to the same broker
- Check that the node's Group ID and Node ID are correct
- Rebirth requests have a 30-second cooldown
Cause:
- The main MQTT client disconnected
Solutions:
- Reconnect to the broker
- Start the emulation again
Causes:
- MQTT client disconnected during publish
- Invalid metric configuration
Solutions:
- Check the MQTT connection is active
- Verify all metric configurations are valid
Use the health endpoint to verify MQTTProbe is running:
curl http://localhost:8080/health
# Expected: OKDocker uses this endpoint for container health checks. If it returns an error, check the container logs.
Logs are written to the console. Default log levels:
- Development: Information
- Production: Warning
To increase verbosity, set environment variables:
# Add to docker-compose environment or .env
Logging__LogLevel__Default=Debug
Logging__LogLevel__MqttProbe=Trace# Follow logs
docker compose logs -f
# View last 100 lines
docker compose logs --tail 100 mqttprobe- Check the GitHub Issues for similar problems
- Enable debug logging and review the output
- Open a new issue with:
- MQTTProbe version
- MQTT broker type and version
- Steps to reproduce
- Relevant log output