{"record":{"id":"ac443a50483ec4a8","repo":"gatsbyjs/gatsby","slug":"gatsby-react-router-scroll-unable-to-save-state","errorCode":null,"errorMessage":"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.","messagePattern":"\\[gatsby-react-router-scroll\\] Unable to save state in sessionStorage; sessionStorage is not available\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/gatsby-react-router-scroll/src/session-storage.ts","lineNumber":46,"sourceCode":"    }\n  }\n\n  save(location: Path, key: string, value: number): void {\n    const stateKey = this.getStateKey(location, key)\n    const storedValue = JSON.stringify(value)\n\n    try {\n      window.sessionStorage.setItem(stateKey, storedValue)\n    } catch (e) {\n      if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n        window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue)\n      } else {\n        window[GATSBY_ROUTER_SCROLL_STATE] = {}\n        window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue)\n      }\n\n      if (process.env.NODE_ENV !== `production`) {\n        console.warn(\n          `[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.`\n        )\n      }\n    }\n  }\n\n  getStateKey(location: Path, key: string): string {\n    const stateKeyBase = `${STATE_KEY_PREFIX}${location.pathname}`\n    return key === null || typeof key === `undefined`\n      ? stateKeyBase\n      : `${stateKeyBase}|${key}`\n  }\n}\n","sourceCodeStart":28,"sourceCodeEnd":60,"githubUrl":"https://github.com/gatsbyjs/gatsby/blob/e85d62f1779e353eaac1753211629a26d123e26c/packages/gatsby-react-router-scroll/src/session-storage.ts#L28-L60","documentation":"Browser warning from gatsby-react-router-scroll: sessionStorage.setItem threw, so scroll state is saved to an in-memory window object instead and will not survive reloads; printed only outside production.","triggerScenarios":"Thrown at packages/gatsby-react-router-scroll/src/session-storage.ts:46 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Allow site data/storage in browser settings so scroll state persists"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e85d62f1779e353eaac1753211629a26d123e26c","analyzedAt":"2026-08-26T17:50:09.662Z","contentChangedAt":"2026-08-26T17:50:09.662Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}