I encountered this exception while manipulating session history via history.pushState() and history.replaceState(). The state object I passed had circular references and apparently the serialization mechanism used by the History API is not the same as JSON.stringify() since the latter prints a nice error message about circular references (at least in Chrome).