Fixed: Redux Persist state breaks on update (white screen of death)

been an ongoing issue for as long as i can remember for me:

any links to localhost:8888 loads a simple, empty page because an error in main.js prevents the rest of the page from loading. (using chrome latest)

all links work in other browsers, including safari (latest) and brave (latest)

main.js:15641 Uncaught TypeError: state.localIdentities.slice is not a function
    at IdentityReducer (main.js:15641)
    at combination (main.js:179321)
    at combination (main.js:179321)
    at RootReducer (main.js:17016)
    at computeNextEntry (main.js:176613)
    at recomputeStates (main.js:176647)
    at main.js:177031
    at dispatch (main.js:179547)
    at createStore (main.js:179622)
    at main.js:178983

and seems like only the very basic header/footer HTML loads on every URL attempted:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>Blockstack Browser</title>
    <link rel="stylesheet" href="/css/bootstrap.min.css" />
    <link rel="stylesheet" href="/css/fonts.css" />
    <link rel="stylesheet" href="/css/font-awesome.css" />
    <link rel="stylesheet" href="/css/app.css" />
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
  </head>
  <body>
    <div id="app"></div>
    <script src="/js/main.js"></script>
    <style type="text/css">
      #app {
        height: 100%;
        width: 100%;
      }
    </style>
  </body>
</html>

Hi @naveen

This happens if an update breaks the redux-persist state. We changed the way that we update that persisted state, so that hopefully this isn’t a problem in future updates. However, for now, the way to solve this is by resetting the browser’s state by opening your javascript console and calling localStorage.clear() — then you should be able to use the blockstack browser by restoring from your keychain phrase.

yup - confirmed this fixed it! thanks!

1 Like