thomasnordquist / MQTT-Explorer

An all-round MQTT client that provides a structured topic overview
https://mqtt-explorer.com
Other
3.09k stars 291 forks source link

MQTT Explorer stopped working #747

Closed DaveDixon closed 11 months ago

DaveDixon commented 11 months ago

I installed MQTT Explorer today from snap on Ubuntu 22.04. It didn't work until I opened port 1883 on the server (not surprising) and then worked great. For several hours. Meanwhile, I'm using some mqtt devices in Home Assistant.

The server had to be rebooted and MQTT Explorer doesn't work anymore. At first, it wouldn't even start. Then, I commented out all the paths in ~/snap/mqtt_explorer/.config/user_dirs.dirs and then MQTT Explorer would starte. But it won't connect to the MQTT server anymore. Nothing changed in the MQTT Explorer configuration. Nothing changed with the server. It continues to serve MQTT to Home Assistant with no problem But MQTT Explorer refused to connect to the MQTT server.

So I started mqtt_server from the command line with verbose and get the output pasted below. No mention of my MQTT server IP address in there. I can Abort and re Connect, with no messages oterthan unsubscribeAll and subscribing.

(mqtt-explorer:7082): Gtk-WARNING **: 02:10:36.590: Theme parsing error: gtk.css:1422:23: 'font-feature-settings' is not a valid property name

(mqtt-explorer:7082): Gtk-WARNING **: 02:10:36.592: Theme parsing error: gtk.css:3308:25: 'font-feature-settings' is not a valid property name

(mqtt-explorer:7082): Gtk-WARNING **: 02:10:36.592: Theme parsing error: gtk.css:3770:23: 'font-feature-settings' is not a valid property name
02:10:36.726 › App starting...
subscribing connection/add/mqtt
subscribing connection/remove
subscribing storage/store
subscribing storage/load
subscribing storage/clear
icon path /snap/mqtt-explorer/29/resources/app.asar/icon.png
Driver does not support the 0xa7a1 PCI ID.
libGL error: failed to create dri screen
libGL error: failed to load driver: iris
subscribing conn/publish/902ef562-369b-4e8e-b2f7-3bc3f2b6ad0d
{ Error: connect ECONNREFUSED 185.194.141.14:443
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1061:14)
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '185.194.141.14',
  port: 443,
  config:
   { adapter: [Function: httpAdapter],
     transformRequest: { '0': [Function: transformRequest], '1': [Function] },
     transformResponse: { '0': [Function: transformResponse] },
     timeout: 0,
     xsrfCookieName: 'XSRF-TOKEN',
     xsrfHeaderName: 'X-XSRF-TOKEN',
     maxContentLength: -1,
     validateStatus: [Function: validateStatus],
     headers:
      { Accept: 'application/json, text/plain, */*',
        'Content-Type': 'application/json;charset=utf-8',
        'Content-Encoding': 'gzip',
        'User-Agent': 'axios/0.18.1',
        'Content-Length': 64909 },
     method: 'post',
     withCredentials: true,
     url: 'https://app-telemetry.t7n.de/app/9b0c8ca04a361eb8160d98c5',
     data:
      <Buffer 1f 8b 08 00 00 00 00 00 00 03 dc bd 6b cf 24 c7 8d 2e f8 5f fa b3 b2 11 17 32 18 e1 6f b2 d4 6b 0b 90 6d 41 2d cf c1 ee 60 20 64 dd 66 84 91 25 43 92 ... 64859 more bytes> },
  request:
   Writable {
     _writableState:
      WritableState {
        objectMode: false,
        highWaterMark: 16384,
        finalCalled: false,
        needDrain: false,
        ending: false,
        ended: false,
        finished: false,
        destroyed: false,
        decodeStrings: true,
        defaultEncoding: 'utf8',
        length: 0,
        writing: false,
        corked: 0,
        sync: true,
        bufferProcessing: false,
        onwrite: [Function: bound onwrite],
        writecb: null,
        writelen: 0,
        bufferedRequest: null,
        lastBufferedRequest: null,
        pendingcb: 0,
        prefinished: false,
        errorEmitted: false,
        emitClose: true,
        autoDestroy: false,
        bufferedRequestCount: 0,
        corkedRequestsFree: [Object] },
     writable: true,
     _events:
      [Object: null prototype] {
        response: [Function: handleResponse],
        error: [Function: handleRequestError] },
     _eventsCount: 2,
     _maxListeners: undefined,
     _options:
      { protocol: 'https:',
        maxRedirects: 21,
        maxBodyLength: 10485760,
        path: '/app/9b0c8ca04a361eb8160d98c5',
        method: 'post',
        headers: [Object],
        agent: undefined,
        auth: undefined,
        hostname: 'app-telemetry.t7n.de',
        port: null,
        nativeProtocols: [Object],
        pathname: '/app/9b0c8ca04a361eb8160d98c5' },
     _redirectCount: 0,
     _redirects: [],
     _requestBodyLength: 64909,
     _requestBodyBuffers: [ [Object] ],
     _onNativeResponse: [Function],
     _currentRequest:
      ClientRequest {
        _events: [Object],
        _eventsCount: 6,
        _maxListeners: undefined,
        outputData: [],
        outputSize: 0,
        writable: true,
        _last: true,
        chunkedEncoding: false,
        shouldKeepAlive: false,
        useChunkedEncodingByDefault: true,
        sendDate: false,
        _removedConnection: false,
        _removedContLen: false,
        _removedTE: false,
        _contentLength: null,
        _hasBody: true,
        _trailer: '',
        finished: false,
        _headerSent: true,
        socket: [TLSSocket],
        connection: [TLSSocket],
        _header:
         'POST /app/9b0c8ca04a361eb8160d98c5 HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nContent-Type: application/json;charset=utf-8\r\nContent-Encoding: gzip\r\nUser-Agent: axios/0.18.1\r\nContent-Length: 64909\r\nHost: app-telemetry.t7n.de\r\nConnection: close\r\n\r\n',
        _onPendingData: [Function: noopPendingOutput],
        agent: [Agent],
        socketPath: undefined,
        method: 'POST',
        path: '/app/9b0c8ca04a361eb8160d98c5',
        _ended: false,
        res: null,
        aborted: false,
        timeoutCb: null,
        upgradeOrConnect: false,
        parser: null,
        maxHeadersCount: null,
        _redirectable: [Circular],
        [Symbol(isCorked)]: false,
        [Symbol(outHeadersKey)]: [Object] },
     _currentUrl: 'https://app-telemetry.t7n.de/app/9b0c8ca04a361eb8160d98c5' },
  response: undefined }
^[[B
{ Error: connect ECONNREFUSED 185.194.141.14:443
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1061:14)
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '185.194.141.14',
  port: 443,
  config:
   { adapter: [Function: httpAdapter],
     transformRequest: { '0': [Function: transformRequest], '1': [Function] },
     transformResponse: { '0': [Function: transformResponse] },
     timeout: 0,
     xsrfCookieName: 'XSRF-TOKEN',
     xsrfHeaderName: 'X-XSRF-TOKEN',
     maxContentLength: -1,
     validateStatus: [Function: validateStatus],
     headers:
      { Accept: 'application/json, text/plain, */*',
        'Content-Type': 'application/json;charset=utf-8',
        'Content-Encoding': 'gzip',
        'User-Agent': 'axios/0.18.1',
        'Content-Length': 65207 },
     method: 'post',
     withCredentials: true,
     url: 'https://app-telemetry.t7n.de/app/9b0c8ca04a361eb8160d98c5',
     data:
      <Buffer 1f 8b 08 00 00 00 00 00 00 03 dc bd 6b cf 24 c7 8d 2e f8 5f fa b3 b2 11 17 32 18 e1 6f b2 d4 6b 0b 90 6d 41 2d cf c1 ee 60 20 64 dd 66 84 91 25 43 92 ... 65157 more bytes> },
  request:
   Writable {
     _writableState:
      WritableState {
        objectMode: false,
        highWaterMark: 16384,
        finalCalled: false,
        needDrain: false,
        ending: false,
        ended: false,
        finished: false,
        destroyed: false,
        decodeStrings: true,
        defaultEncoding: 'utf8',
        length: 0,
        writing: false,
        corked: 0,
        sync: true,
        bufferProcessing: false,
        onwrite: [Function: bound onwrite],
        writecb: null,
        writelen: 0,
        bufferedRequest: null,
        lastBufferedRequest: null,
        pendingcb: 0,
        prefinished: false,
        errorEmitted: false,
        emitClose: true,
        autoDestroy: false,
        bufferedRequestCount: 0,
        corkedRequestsFree: [Object] },
     writable: true,
     _events:
      [Object: null prototype] {
        response: [Function: handleResponse],
        error: [Function: handleRequestError] },
     _eventsCount: 2,
     _maxListeners: undefined,
     _options:
      { protocol: 'https:',
        maxRedirects: 21,
        maxBodyLength: 10485760,
        path: '/app/9b0c8ca04a361eb8160d98c5',
        method: 'post',
        headers: [Object],
        agent: undefined,
        auth: undefined,
        hostname: 'app-telemetry.t7n.de',
        port: null,
        nativeProtocols: [Object],
        pathname: '/app/9b0c8ca04a361eb8160d98c5' },
     _redirectCount: 0,
     _redirects: [],
     _requestBodyLength: 65207,
     _requestBodyBuffers: [ [Object] ],
     _onNativeResponse: [Function],
     _currentRequest:
      ClientRequest {
        _events: [Object],
        _eventsCount: 6,
        _maxListeners: undefined,
        outputData: [],
        outputSize: 0,
        writable: true,
        _last: true,
        chunkedEncoding: false,
        shouldKeepAlive: false,
        useChunkedEncodingByDefault: true,
        sendDate: false,
        _removedConnection: false,
        _removedContLen: false,
        _removedTE: false,
        _contentLength: null,
        _hasBody: true,
        _trailer: '',
        finished: false,
        _headerSent: true,
        socket: [TLSSocket],
        connection: [TLSSocket],
        _header:
         'POST /app/9b0c8ca04a361eb8160d98c5 HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nContent-Type: application/json;charset=utf-8\r\nContent-Encoding: gzip\r\nUser-Agent: axios/0.18.1\r\nContent-Length: 65207\r\nHost: app-telemetry.t7n.de\r\nConnection: close\r\n\r\n',
        _onPendingData: [Function: noopPendingOutput],
        agent: [Agent],
        socketPath: undefined,
        method: 'POST',
        path: '/app/9b0c8ca04a361eb8160d98c5',
        _ended: false,
        res: null,
        aborted: false,
        timeoutCb: null,
        upgradeOrConnect: false,
        parser: null,
        maxHeadersCount: null,
        _redirectable: [Circular],
        [Symbol(isCorked)]: false,
        [Symbol(outHeadersKey)]: [Object] },
     _currentUrl: 'https://app-telemetry.t7n.de/app/9b0c8ca04a361eb8160d98c5' },
DaveDixon commented 11 months ago

Never mind. UFW can be so weird sometimes. It allowed 1883 IN/OUT before the reboot, but only IN after. So I added an OUT rule, and now it works