diff --git a/src/node/handler/PadMessageHandler.js b/src/node/handler/PadMessageHandler.js index ffbb74ea8..1fde752d6 100644 --- a/src/node/handler/PadMessageHandler.js +++ b/src/node/handler/PadMessageHandler.js @@ -1189,6 +1189,28 @@ async function handleClientReady(client, message) let p = cached ? Promise.resolve(cached) : authorManager.getAuthor(author); return p.then(authorInfo => { + // default fallback color to use if authorInfo.colorId is null + const defaultColor = "#daf0b2"; + + if (!authorInfo) { + console.warn(`handleClientReady(): no authorInfo parameter was received. Default values are going to be used. See issue #3612`); + authorInfo = {}; + } + + // For some reason sometimes name isn't set + // Catch this issue here and use a fixed name. + if (!authorInfo.name) { + console.warn(`handleClientReady(): client submitted no author name. Using "Anonymous". See: issue #3612`); + authorInfo.name = "Anonymous"; + } + + // For some reason sometimes colorId isn't set + // Catch this issue here and use a fixed color. + if (!authorInfo.colorId) { + console.warn(`handleClientReady(): author "${authorInfo.name}" has no property colorId. Using the default color ${defaultColor}. See issue #3612`); + authorInfo.colorId = defaultColor; + } + // Send the new User a Notification about this other user let msg = { "type": "COLLABROOM",