method: null, statusCode: 403, statusMessage: 'Forbidden', client: [TLSSocket], _consuming: false, _dumped: false, req: [Circular *1], [Symbol(kCapture)]: false, [Symbol(RequestTimeout)]: undefined }, aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: true, host: '172.19.41.231', protocol: 'https:', [Symbol(kCapture)]: false, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype] { accept: [Array], 'x-csrf-token': [Array], 'content-type': [Array], cookie: [Array], 'user-agent': [Array], 'content-length': [Array], host: [Array] } }, response: { status: 403, statusText: 'Forbidden', headers: { vary: 'Origin', 'x-dns-prefetch-control': 'off', 'x-frame-options': 'SAMEORIGIN', 'strict-transport-security': 'max-age=15552000; includeSubDomains', 'x-download-options': 'noopen', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block', 'accept-ranges': 'bytes', 'content-type': 'application/json; charset=utf-8', 'x-response-time': '2ms', 'content-length': '32', date: 'Tue, 26 Apr 2022 16:50:07 GMT', connection: 'keep-alive' }, config: { url: 'https://172.19.41.231/proxy/network/dl/firmware/bundles.json', method: 'post', data: '{}', headers: [Object], transformRequest: [Array], transformResponse: [Array], timeout: 0, withCredentials: true, adapter: [Function: httpAdapter], xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, httpsAgent: [Agent], jar: [CookieJar], maxRedirects: 0, validateStatus: [Function: validateStatus] }, request: ClientRequest { _events: [Object: null prototype], _eventsCount: 2, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: true, _last: false, chunkedEncoding: false, shouldKeepAlive: true, _defaultKeepAlive: true, useChunkedEncodingByDefault: true, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, _contentLength: 2, _hasBody: true, _trailer: '', finished: true, _headerSent: true, socket: [TLSSocket], _header: 'POST /proxy/network/dl/firmware/bundles.json HTTP/1.1 ' + 'Accept: application/json, text/plain, */* ' + 'X-CSRF-Token: fc4af33e-40b5-4723-84c1-8e457ea3c03a ' + 'Content-Type: application/json;charset=utf-8 ' + 'Cookie: TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI3ZDNlODZlOS1jZDAyLTQxYzgtYjhmYS1kNWE4MGRlNGY5Y2EiLCJjc3JmVG9rZW4iOiI0ODk4NjUwMS04M2ZkLTQ2ODUtYmE3My1mZmY3Y2ZmMjk3ODAiLCJqdGkiOiI2OTMyNzBkOS1mNjFkLTQzMjEtYjRmZC0wNWMyZTZmZTgwMGMiLCJwYXNzd29yZFJldmlzaW9uIjoxNjEzNzQwODQ0LCJpYXQiOjE2NTA5OTE4MDcsImV4cCI6MTY1MDk5NTQwN30.iWY98sMTylVt55eIfM8nUHlj_c5eRP449KS0UHmX3ac ' + 'User-Agent: axios/0.21.1 ' + 'Content-Length: 2 ' + 'Host: 172.19.41.231 ' + 'Connection: keep-alive ' + ' ', _keepAliveTimeout: 0, _onPendingData: [Function: noopPendingOutput], agent: [Agent], socketPath: undefined, method: 'POST', maxHeaderSize: undefined, insecureHTTPParser: undefined, path: '/proxy/network/dl/firmware/bundles.json', _ended: true, res: [IncomingMessage], aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: true, host: '172.19.41.231', protocol: 'https:', [Symbol(kCapture)]: false, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype] }, data: { message: 'Invalid CSRF Token' } }, isAxiosError: true, toJSON: [Function: toJSON] } ERROR startListening: Error: Request failed with status code 403 at createError (/var/www/html/plugins/unifi/resources/node_modules/node-unifi/node_modules/axios/lib/core/createError.js:16:15) at settle (/var/www/html/plugins/unifi/resources/node_modules/node-unifi/node_modules/axios/lib/core/settle.js:17:12) at /var/www/html/plugins/unifi/resources/node_modules/node-unifi/node_modules/axios-cookiejar-support/lib/interceptors/response.js:83:25 at new Promise () at responseInterceptor (/var/www/html/plugins/unifi/resources/node_modules/node-unifi/node_modules/axios-cookiejar-support/lib/interceptors/response.js:82:9) at /var/www/html/plugins/unifi/resources/node_modules/node-unifi/node_modules/axios-cookiejar-support/lib/index.js:130:67 at processTicksAndRejections (internal/process/task_queues.js:95:5) { config: { url: 'https://172.19.41.231/proxy/network/dl/firmware/bundles.json', method: 'post', data: '{}', headers: { Accept: 'application/json, text/plain, */*', 'X-CSRF-Token': 'd677e878-ef2d-4fd1-97f9-d14365770f75', 'Content-Type': 'application/json', Cookie: 'TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI3ZDNlODZlOS1jZDAyLTQxYzgtYjhmYS1kNWE4MGRlNGY5Y2EiLCJjc3JmVG9rZW4iOiI5NjgyNWE1Zi1iNGNlLTRlYjItYWE4Yi1lYmI1NGQxMjQ3YzUiLCJqdGkiOiI4NWMwZGJkMi1jNGI1LTQzMjAtODk3ZS0wZTA0MmNjNmYxNmQiLCJwYXNzd29yZFJldmlzaW9uIjoxNjEzNzQwODQ0LCJpYXQiOjE2NTA5OTE4ODIsImV4cCI6MTY1MDk5NTQ4Mn0.gETs-6jkFbRkyrMJgwCZXbzhCRjdPNdQ1H3xD1Rdl9w', 'User-Agent': 'axios/0.21.4', 'Content-Length': 2 }, transformRequest: [ [Function: transformRequest] ], transformResponse: [ [Function: transformResponse] ], timeout: 0, withCredentials: true, adapter: [Function: httpAdapter], xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, httpsAgent: Agent { _events: [Object: null prototype], _eventsCount: 2, _maxListeners: undefined, defaultPort: 443, protocol: 'https:', options: [Object], requests: {}, sockets: {}, freeSockets: [Object], keepAliveMsecs: 1000, keepAlive: true, maxSockets: Infinity, maxFreeSockets: 256, scheduling: 'lifo', maxTotalSockets: Infinity, totalSocketCount: 0, maxCachedSessions: 100, _sessionCache: [Object], [Symbol(kCapture)]: false }, transitional: { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false }, jar: CookieJar { rejectPublicSuffixes: true, enableLooseMode: false, allowSpecialUseDomain: false, store: { idx: { '172.19.41.231': { '/': { TOKEN: Cookie="TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI3ZDNlODZlOS1jZDAyLTQxYzgtYjhmYS1kNWE4MGRlNGY5Y2EiLCJjc3JmVG9rZW4iOiI5NjgyNWE1Zi1iNGNlLTRlYjItYWE4Yi1lYmI1NGQxMjQ3YzUiLCJqdGkiOiI4NWMwZGJkMi1jNGI1LTQzMjAtODk3ZS0wZTA0MmNjNmYxNmQiLCJwYXNzd29yZFJldmlzaW9uIjoxNjEzNzQwODQ0LCJpYXQiOjE2NTA5OTE4ODIsImV4cCI6MTY1MDk5NTQ4Mn0.gETs-6jkFbRkyrMJgwCZXbzhCRjdPNdQ1H3xD1Rdl9w; Path=/; Secure; HttpOnly; hostOnly=true; aAge=13ms; cAge=32ms" } } } }, prefixSecurity: 'silent', _cloneSync: [Function (anonymous)], _importCookiesSync: [Function (anonymous)], getCookiesSync: [Function (anonymous)], getCookieStringSync: [Function (anonymous)], getSetCookieStringsSync: [Function (anonymous)], removeAllCookiesSync: [Function (anonymous)], setCookieSync: [Function (anonymous)], serializeSync: [Function (anonymous)] }, maxRedirects: 0, validateStatus: [Function: validateStatus] }, request: ClientRequest { _events: [Object: null prototype] { error: [Function: handleRequestError], prefinish: [Function: requestOnPrefinish] }, _eventsCount: 2, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: true, _last: false, chunkedEncoding: false, shouldKeepAlive: true, _defaultKeepAlive: true, useChunkedEncodingByDefault: true, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, _contentLength: 2, _hasBody: true, _trailer: '', finished: true, _headerSent: true, socket: TLSSocket { _tlsOptions: [Object], _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true, secureConnecting: false, _SNICallback: null, servername: false, alpnProtocol: false, authorized: false, authorizationError: 'DEPTH_ZERO_SELF_SIGNED_CERT', encrypted: true, _events: [Object: null prototype], _eventsCount: 9, connecting: false, _hadError: false, _parent: null, _host: null, _readableState: [ReadableState], _maxListeners: undefined, _writableState: [WritableState], allowHalfOpen: false, _sockname: null, _pendingData: null, _pendingEncoding: '', server: undefined, _server: null, ssl: [TLSWrap], _requestCert: true, _rejectUnauthorized: false, parser: null, _httpMessage: null, timeout: 0, [Symbol(res)]: [TLSWrap], [Symbol(verified)]: true, [Symbol(pendingSession)]: null, [Symbol(async_id_symbol)]: -1, [Symbol(kHandle)]: [TLSWrap], [Symbol(kSetNoDelay)]: false, [Symbol(lastWriteQueueSize)]: 0, [Symbol(timeout)]: null, [Symbol(kBuffer)]: null, [Symbol(kBufferCb)]: null, [Symbol(kBufferGen)]: null, [Symbol(kCapture)]: false, [Symbol(kBytesRead)]: 0, [Symbol(kBytesWritten)]: 0, [Symbol(connect-options)]: [Object], [Symbol(RequestTimeout)]: undefined }, _header: 'POST /proxy/network/dl/firmware/bundles.json HTTP/1.1 ' + 'Accept: application/json, text/plain, */* ' + 'X-CSRF-Token: d677e878-ef2d-4fd1-97f9-d14365770f75 ' + 'Content-Type: application/json ' + 'Cookie: TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI3ZDNlODZlOS1jZDAyLTQxYzgtYjhmYS1kNWE4MGRlNGY5Y2EiLCJjc3JmVG9rZW4iOiI5NjgyNWE1Zi1iNGNlLTRlYjItYWE4Yi1lYmI1NGQxMjQ3YzUiLCJqdGkiOiI4NWMwZGJkMi1jNGI1LTQzMjAtODk3ZS0wZTA0MmNjNmYxNmQiLCJwYXNzd29yZFJldmlzaW9uIjoxNjEzNzQwODQ0LCJpYXQiOjE2NTA5OTE4ODIsImV4cCI6MTY1MDk5NTQ4Mn0.gETs-6jkFbRkyrMJgwCZXbzhCRjdPNdQ1H3xD1Rdl9w ' + 'User-Agent: axios/0.21.4 ' + 'Content-Length: 2 ' + 'Host: 172.19.41.231 ' + 'Connection: keep-alive ' + ' ', _keepAliveTimeout: 0, _onPendingData: [Function: noopPendingOutput], agent: Agent { _events: [Object: null prototype], _eventsCount: 2, _maxListeners: undefined, defaultPort: 443, protocol: 'https:', options: [Object], requests: {}, sockets: {}, freeSockets: [Object], keepAliveMsecs: 1000, keepAlive: true, maxSockets: Infinity, maxFreeSockets: 256, scheduling: 'lifo', maxTotalSockets: Infinity, totalSocketCount: 0, maxCachedSessions: 100, _sessionCache: [Object], [Symbol(kCapture)]: false }, socketPath: undefined, method: 'POST', maxHeaderSize: undefined, insecureHTTPParser: undefined, path: '/proxy/network/dl/firmware/bundles.json', _ended: true, res: IncomingMessage { _readableState: [ReadableState], _events: [Object: null prototype], _eventsCount: 3, _maxListeners: undefined, socket: null, httpVersionMajor: 1, httpVersionMinor: 1, httpVersion: '1.1', complete: true, headers: [Object], rawHeaders: [Array], trailers: {}, rawTrailers: [], aborted: false, upgrade: false, url: '', method: null, statusCode: 403, statusMessage: 'Forbidden', client: [TLSSocket], _consuming: false, _dumped: false, req: [Circular *1], [Symbol(kCapture)]: false, [Symbol(RequestTimeout)]: undefined }, aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: true, host: '172.19.41.231', protocol: 'https:', [Symbol(kCapture)]: false, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype] { accept: [Array], 'x-csrf-token': [Array], 'content-type': [Array], cookie: [Array], 'user-agent': [Array], 'content-length': [Array], host: [Array] } }, response: { status: 403, statusText: 'Forbidden', headers: { vary: 'Origin', 'x-dns-prefetch-control': 'off', 'x-frame-options': 'SAMEORIGIN', 'strict-transport-security': 'max-age=15552000; includeSubDomains', 'x-download-options': 'noopen', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block', 'accept-ranges': 'bytes', 'content-type': 'application/json; charset=utf-8', 'x-response-time': '2ms', 'content-length': '32', date: 'Tue, 26 Apr 2022 16:51:22 GMT', connection: 'keep-alive' }, config: { url: 'https://172.19.41.231/proxy/network/dl/firmware/bundles.json', method: 'post', data: '{}', headers: [Object], transformRequest: [Array], transformResponse: [Array], timeout: 0, withCredentials: true, adapter: [Function: httpAdapter], xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, httpsAgent: [Agent], transitional: [Object], jar: [CookieJar], maxRedirects: 0, validateStatus: [Function: validateStatus] }, request: ClientRequest { _events: [Object: null prototype], _eventsCount: 2, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: true, _last: false, chunkedEncoding: false, shouldKeepAlive: true, _defaultKeepAlive: true, useChunkedEncodingByDefault: true, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, _contentLength: 2, _hasBody: true, _trailer: '', finished: true, _headerSent: true, socket: [TLSSocket], _header: 'POST /proxy/network/dl/firmware/bundles.json HTTP/1.1 ' + 'Accept: application/json, text/plain, */* ' + 'X-CSRF-Token: d677e878-ef2d-4fd1-97f9-d14365770f75 ' + 'Content-Type: application/json ' + 'Cookie: TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI3ZDNlODZlOS1jZDAyLTQxYzgtYjhmYS1kNWE4MGRlNGY5Y2EiLCJjc3JmVG9rZW4iOiI5NjgyNWE1Zi1iNGNlLTRlYjItYWE4Yi1lYmI1NGQxMjQ3YzUiLCJqdGkiOiI4NWMwZGJkMi1jNGI1LTQzMjAtODk3ZS0wZTA0MmNjNmYxNmQiLCJwYXNzd29yZFJldmlzaW9uIjoxNjEzNzQwODQ0LCJpYXQiOjE2NTA5OTE4ODIsImV4cCI6MTY1MDk5NTQ4Mn0.gETs-6jkFbRkyrMJgwCZXbzhCRjdPNdQ1H3xD1Rdl9w ' + 'User-Agent: axios/0.21.4 ' + 'Content-Length: 2 ' + 'Host: 172.19.41.231 ' + 'Connection: keep-alive ' + ' ', _keepAliveTimeout: 0, _onPendingData: [Function: noopPendingOutput], agent: [Agent], socketPath: undefined, method: 'POST', maxHeaderSize: undefined, insecureHTTPParser: undefined, path: '/proxy/network/dl/firmware/bundles.json', _ended: true, res: [IncomingMessage], aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: true, host: '172.19.41.231', protocol: 'https:', [Symbol(kCapture)]: false, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype] }, data: { message: 'Invalid CSRF Token' } }, isAxiosError: true, toJSON: [Function: toJSON] }