SenBird Chat UI Kit Connection Issue

[Problem/Question]
// Detailed description of issue.

__bundle-84b51006.js:1 WebSocket connection to 'wss://ws-59d00da4-f261-4dc7-bb89-e2bb81fb13d2.sendbird.com/?p=JS&pv=Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit%2F537.36%20(KHTML.%20like%20Gecko)%20Chrome%2F111.0.0.0%20Safari%2F537.36&sv=4.6.0&ai=59D00DA4-F261-4DC7-BB89-E2BB81FB13D2&user_id=5&access_token=null&pmce=1&active=1&device_token_types=gcm%2Chuawei%2Capns&SB-User-Agent=JS/c4.6.0//u3.4.1&Request-Sent-Timestamp=1679017313590&include_extra_data=premium_feature_list%2Cfile_upload_size_limit%2Capplication_attributes%2Cemoji_hash&use_local_cache=0&include_poll_details=1' failed: WebSocket is closed before the connection is established.
(anonymous) @ __bundle-84b51006.js:1
n2.disconnect @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
i @ __bundle-84b51006.js:1
n2.disconnect @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
a2 @ __bundle-84b51006.js:1
Promise.then (async)
c3 @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
i @ __bundle-84b51006.js:1
n2.run @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
i @ __bundle-84b51006.js:1
n2.changeState @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
i @ __bundle-84b51006.js:1
n2.onConnect @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
i @ __bundle-84b51006.js:1
e2.connect @ __bundle-84b51006.js:1
(anonymous) @ sendbird.js:1
(anonymous) @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
o2 @ __bundle-84b51006.js:1
Promise.then (async)
c3 @ __bundle-84b51006.js:1
o2 @ __bundle-84b51006.js:1
Promise.then (async)
c3 @ __bundle-84b51006.js:1
o2 @ __bundle-84b51006.js:1
Promise.then (async)
c3 @ __bundle-84b51006.js:1
o2 @ __bundle-84b51006.js:1
Promise.then (async)
c3 @ __bundle-84b51006.js:1
(anonymous) @ __bundle-84b51006.js:1
i @ __bundle-84b51006.js:1
n2.connect @ sendbird.js:1
onDisconnect @ thunks.js:117
disconnectSdk @ thunks.js:35
handleConnection @ thunks.js:55
(anonymous) @ Sendbird.jsx:80
commitHookEffectListMount @ react-dom.development.js:23150
commitPassiveMountOnFiber @ react-dom.development.js:24926
commitPassiveMountEffects_complete @ react-dom.development.js:24891
commitPassiveMountEffects_begin @ react-dom.development.js:24878
commitPassiveMountEffects @ react-dom.development.js:24866
flushPassiveEffectsImpl @ react-dom.development.js:27039
flushPassiveEffects @ react-dom.development.js:26984
(anonymous) @ react-dom.development.js:26769
workLoop @ scheduler.development.js:266
flushWork @ scheduler.development.js:239
performWorkUntilDeadline @ scheduler.development.js:533
commons.js:2 Channel: Error in handleResponse UNK/SW_UNREACHABLE isLogsEnabled null
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.catch (async)
_sendMessageToExtension @ commons.js:2
sendToExtension @ commons.js:2
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1
commons.js:2 Channel: Error in handleResponse UNK/SW_UNREACHABLE options getValues
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.catch (async)
_sendMessageToExtension @ commons.js:2
sendToExtension @ commons.js:2
update @ commons.js:2
C @ commons.js:2
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1
commons.js:2 Channel: Error in handleResponse UNK/SW_UNREACHABLE options getValues
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.catch (async)
_sendMessageToExtension @ commons.js:2
sendToExtension @ commons.js:2
update @ commons.js:2
ve.onUpdate.e.<computed>.O @ commons.js:2
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1
commons.js:2 Channel: Error in handleResponse UNK/SW_UNREACHABLE contextMenu createContextMenu
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.catch (async)
_sendMessageToExtension @ commons.js:2
sendToExtension @ commons.js:2
send @ commons.js:2
setContextMenuItem @ commons.js:2
enable @ commons.js:2
Le @ commons.js:2
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1
commons.js:2 Channel: Error in handleResponse UNK/SW_UNREACHABLE tabClipper initCompleted
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.catch (async)
_sendMessageToExtension @ commons.js:2
sendToExtension @ commons.js:2
Le @ commons.js:2
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1
commons.js:2 Channel: Error in handleResponse UNK/SW_UNREACHABLE options getValue
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.catch (async)
_sendMessageToExtension @ commons.js:2
sendToExtension @ commons.js:2
Le @ commons.js:2
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1
commons.js:2 Channel: Error in handleResponse UNK/SW_UNREACHABLE options getValue
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.catch (async)
_sendMessageToExtension @ commons.js:2
sendToExtension @ commons.js:2
Le @ commons.js:2
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1
commons.js:2 Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist.
fromGeneric @ commons.js:2
fromAny @ commons.js:2
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.then (async)
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1
commons.js:2 Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist.
fromGeneric @ commons.js:2
fromAny @ commons.js:2
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.then (async)
update @ commons.js:2
C @ commons.js:2
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1
commons.js:2 Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist.
fromGeneric @ commons.js:2
fromAny @ commons.js:2
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.then (async)
update @ commons.js:2
ve.onUpdate.e.<computed>.O @ commons.js:2
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1
commons.js:2 Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist.
fromGeneric @ commons.js:2
fromAny @ commons.js:2
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.catch (async)
_sendMessageToExtension @ commons.js:2
sendToExtension @ commons.js:2
send @ commons.js:2
setContextMenuItem @ commons.js:2
enable @ commons.js:2
Le @ commons.js:2
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1
commons.js:2 Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist.
fromGeneric @ commons.js:2
fromAny @ commons.js:2
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.catch (async)
_sendMessageToExtension @ commons.js:2
sendToExtension @ commons.js:2
Le @ commons.js:2
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1
commons.js:2 Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist.
fromGeneric @ commons.js:2
fromAny @ commons.js:2
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.then (async)
Le @ commons.js:2
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1
commons.js:2 Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist.
fromGeneric @ commons.js:2
fromAny @ commons.js:2
_handleResponsePromise @ commons.js:2
(anonymous) @ commons.js:2
Promise.then (async)
Le @ commons.js:2
168 @ commons.js:2
l @ content.js:1
(anonymous) @ content.js:1
l.O @ content.js:1
(anonymous) @ content.js:1
(anonymous) @ content.js:1

// What version of the SDK are you using?
3

// Please provide reproduction steps and, if possible, code snippets.

const App = () => {
    const APP_ID = '';
    const USER_ID = '';
    return (
        <div className="App">
            <SendbirdApp
                // Add the two lines below.
                appId={APP_ID}  // Specify your Sendbird application ID.
                userId={USER_ID}        // Specify your user ID.
            />
        </div>
    );
};

We’re running into this very issue. Configured for debug logs but they haven’t been helpful unfortunately.

<SendbirdApp
            appId={SENDBIRD_APP_ID}
            userId={user.id}
            accessToken={sendbird_session_token}
            config={{
              logLevel: 'debug',
            }}
          />
  • First thought it was related to settings > security > allowed domains settings but currently it is empty so that should not have impact.

EDIT: This turned out that the access token had expired. Because access token permissions are wide open.

Having logging clearly indicate that the access token is the reason rather than “No Connection” would be very helpful.

Question: How long does the access token stay live?

Access token is permanent, but session token is valid for 7 days.

Please refer to the following link.

1 Like