diff --git a/packages/react-client/src/ReactFlightClient.js b/packages/react-client/src/ReactFlightClient.js index 2f60ccddb4b4d..141058fb9dfb2 100644 --- a/packages/react-client/src/ReactFlightClient.js +++ b/packages/react-client/src/ReactFlightClient.js @@ -1364,10 +1364,8 @@ function parseModelString( // happened. Object.defineProperty(parentObject, key, { get: function () { - // We intentionally don't throw an error object here because it looks better - // without the stack in the console which isn't useful anyway. - // eslint-disable-next-line no-throw-literal - throw ( + // TODO: We should ideally throw here to indicate a difference. + return ( 'This object has been omitted by React in the console log ' + 'to avoid sending too much data from the server. Try logging smaller ' + 'or more specific objects.' diff --git a/packages/react-server/src/ReactFlightServer.js b/packages/react-server/src/ReactFlightServer.js index 6adf619290e5e..ca004a6e7971f 100644 --- a/packages/react-server/src/ReactFlightServer.js +++ b/packages/react-server/src/ReactFlightServer.js @@ -3465,7 +3465,18 @@ function renderConsoleValue( if (element._owner != null) { outlineComponentInfo(request, element._owner); } + if (typeof element.type === 'object' && element.type !== null) { + // If the type is an object it can get cut off which shouldn't happen here. + doNotLimit.add(element.type); + } + if (typeof element.key === 'object' && element.key !== null) { + // This should never happen but just in case. + doNotLimit.add(element.key); + } doNotLimit.add(element.props); + if (element._owner !== null) { + doNotLimit.add(element._owner); + } if (enableOwnerStacks) { let debugStack: null | ReactStackTrace = null;