Skip to main content

Troubleshooting

Things that go wrong with an embedded chat room, and what actually fixes them.

Moderator controls are missing in the embedded chat

The commonest report: the chat works, messages send and arrive, but the bin icon for deleting a message and the rest of the moderator controls are not there. It often shows up as "it works when I open the chat room directly, but not in the iframe on our site", or "it works normally but not in incognito".

Moderator access in an embedded chat does not depend on third-party cookies. Turning third-party cookies on will not bring the controls back, and turning them off is not what took them away. If you have been told to allow third-party cookies to make moderation work, that will not help you, and in current browsers it is often not an option you can offer your visitors anyway.

What the chat uses instead is the identity you give it when the room loads — a moderator who has signed in, or a token on the iframe URL. That travels with the page, so it works the same in a normal window, in a private window, and inside an iframe on your own domain.

What is actually happening

Being signed in to the Dead Simple Chat dashboard is not the same as being a moderator in the room.

When you are signed in to the dashboard and you open your own room in the same browser, you may be recognised as the account owner and shown moderator controls without doing anything. That is a convenience of opening the room yourself in that browser. It is not how moderation is meant to reach a room, and it is exactly what does not carry over when:

  • the room is inside an iframe on your site rather than open as its own page,
  • the browser is in a private or incognito window,
  • the browser keeps sites' storage separated from each other, which is now the default in several of them,
  • or the moderator is anybody other than you — a colleague who has no dashboard sign-in at all.

In all of those, the room sees an ordinary visitor and gives them the ordinary join screen. Nothing is broken. The room was simply never told who the moderator is.

The fix: sign the moderator in properly

Give the room a moderator identity, and it works everywhere, including in an iframe and in incognito. There are three ways, in increasing order of how automatic they are.

  1. Sign in with a moderator account, in the chat itself. Create a moderator for the room and use the moderator login on the room's join screen. See Creating Moderators. This needs no code and is the right answer for a human who moderates by hand.
  2. Pass an access token on the iframe URL. Your site puts a signed token in the room's URL and the chat trusts it for that person. Nothing depends on browser state at all, so a reload works and a private window works. See Login Moderator via SSO and SSO Using Auth Token.
  3. Give the person a moderator role on the room. With users provisioned into the room, a moderator is somebody whose role on the Members tab says so, and they get moderator controls whenever they join as themselves. See Creating and Managing Users and Chat Room Permission Levels.

If your account is still using the older join screen, Settings -> Account has a Switch to New Join Modal button. The newer one is what the roles on the Members tab work with — read Creating and Managing Users first, because it changes what the join screen offers.

Checking it quickly

  1. Open the room inside the iframe, as a visitor would, not as its own page.
  2. Sign in as the moderator by one of the three routes above.
  3. Hover a message. The bin icon appears on it for a moderator and does not for anyone else.

If the controls appear when you open the room directly but not in the iframe, you are relying on being signed in to the dashboard. Use one of the three routes instead.

I get moderator controls when I want to test as an ordinary visitor

The same thing, the other way round. If you are signed in to the dashboard in that browser, opening your own room can recognise you and give you the moderator view — so you cannot see what a normal visitor sees.

The join screen says as much:

If you want to login as a Moderator instead, open this page in incognito window or logout of deadsimplechat and then open this page.

To test as a visitor, use a private window, a different browser, or sign out of the dashboard first.

Signing in works, but a refresh sends me back to the join screen

A chat embedded on your site is a different site from the page around it, as far as the browser is concerned, and some browsers and privacy settings stop an embedded page keeping anything between page loads. When that happens, a sign-in made inside the chat does not survive a reload.

The fix is to stop depending on it. Put the person's identity on the iframe URL — an access token or a unique user identifier — so the room re-establishes who they are every time it loads. There is nothing to remember, so there is nothing to lose. See SSO Using Auth Token or SSO Using Unique User Identifier.

This is worth doing for ordinary participants too: they keep their name and their place across a refresh instead of being asked who they are again.

The chat does not connect at all

If the room loads but never shows any messages and nobody appears online, the connection itself is not getting through.

The chat talks over a WebSocket connection and does not fall back to anything else. Most networks are fine, but a corporate proxy, a strict firewall or a filtering appliance that blocks WebSocket connections will stop the chat working while ordinary pages on the same network load normally. That is the pattern to look for: the page arrives, the chat inside it never comes alive.

Things worth checking, roughly in order:

  • Try the same room on a different network — a phone off wi-fi is the quickest test. If it works there, the problem is the network, not the room.
  • Try it with browser extensions disabled. Content and privacy extensions sometimes block the connection.
  • Check the page is served over https. A secure page is what the embed expects.
  • Check you have not wrapped the iframe in a restrictive sandbox attribute. The embed code the dashboard gives you has no sandbox; if your CMS or page template adds one, the chat needs scripts and its own storage to run.

Nobody new can get into the room

If people are being told the room is full, that is the concurrent-user allowance on your plan rather than a fault. See Plans and Quotas, which also covers the roomLimitReached SDK event so your page can react instead of leaving people at a dialog.

If people are being turned away for another reason, check the room's Chat Room Permission Level and whether Turn Chat Off or a room password is set — see the Chat Room Settings Reference.

Still stuck

Contact support. It helps to say the Room ID, whether the room is embedded or opened directly, which browser and whether it was a private window, and what the person was signed in as.