Fork me on GitHub
#fulcro
<
2020-11-24
>
Danny Almeida22:11:33

I get Revision nil when using fulcro-inspect - this only happens when devtools is already open. If i close it and reopen it and then click on fulcro inspect tab, i can see the app db data. I tried reinstalling the extension and restarting the server, but i get the same issue every time including on two different systems. I'm using Fulcro inspect 3.0.2 and fulcro version 3.4.3 . Reading earlier threads, I've checked that third party cookies are enabled and also ad blockers are disabled on the page.

Reshef Mann17:11:33

I'm having a similar issue. When inspecting the Fulcro Inspect I see: ERROR [fulcro.inspect.chrome.devtool.main:176] - Something was nil (anonymous) @ main.js:4081 I'm running official chrome on ubuntu.

Danny Almeida02:11:54

@reshef.mann Yes I can confirm, I get the same error when I right click on Revision and click inspect.

Henry02:11:13

@reshef.mann Are you using Fulcro version 3.4.2+? The latest Fulcro Inspect requires that to work.

Danny Almeida02:11:01

@U06B8J0AJ I'm using fulcro version 3.4.3 and fulcro inspect version 3.0.2 and see the same issue.

Henry05:11:50

@ULL659VU6 The issue is strange because Fulcro Inspect is working fine for me... Make sure your Chrome version is up to date as well. Try setting "Site access" to "On Click" in your Fulcro Inspect extension settings. This way, when you use Fulcro Inspect, you need to click on the Fulcro Inspect extension icon to "activate" it. From your screenshot, you should click on the puzzle icon towards the right end of your navigation bar, then click on "Fulcro Inspect". Hope that manually turning on Fulcro Inspect can solve your issue of it not working all the time. The bright side is that you could still get it to work somehow, despite the workaround (i.e. closing and opening it again). Hope you can find a solution. P.S. You @ a different person, not me. I am @UVDMR4Y75.

Danny Almeida06:11:11

@UVDMR4Y75 Thank you for your help. Yes I did @ a different person 😀. I did change it to "`On Click`" but it's the same result. I guess I will have to live with the closing and opening developer tools for now.

Reshef Mann09:11:28

@UVDMR4Y75 Thanks! I was indeed using and older version (I cloned the fulcro template). It works fine now.

tony.kay18:11:41

Any further updates on this? I’m not able to reproduce on MacOS. I just updated all deps on the template and reinstalled from Chrome store to be sure. I see no problems.

Henry08:11:49

@U0CKQ19AQ This matter was interesting so I took some time to investigate. Based on the screenshot provided by @ULL659VU6, I tried out the same piece of demo codes under chapter 3.9.1 in the Fulcro book.  The issue does exist for this particular demo. However, Fulcro Inspect works fine in other settings, like the latest Fulcro RAD Demo which I just checked.  A video is worth a thousand words, so I have prepared the following video to show the strange behaviour.  The same behaviour can also be observed when running the codes in a workspace.  Also note that after getting "Revision nil", if you send any transaction, Fulcro Inspect springs up properly again. Hope this is helpful in the debugging process.

Henry08:11:50

P.S. The console error message is the same as stated by @reshef.mann above. So, it might be worth noting that the error message in this issue is the same as the one caused by not running Fulcro 3.4.2+. Error message points to: [fulcro.inspect.chrome.devtool.main:176] - Something was nil (anonymous) @ main.js:4081 .

tony.kay19:11:46

Thanks a lot @UVDMR4Y75. This is a very minor issue that has to do with how Inspect works now. The older inspect used to send every database delta but as a diff. This was a lot of overhead, and would also get out of sync. The new version asks for diffs based on what it already has, and the UI just sends revision numbers. So, at each swap on the state atom the UI is sending “I now have revision n+1”, to which Inspect responds by looking in the history of what it has (I have nothing) and sends a message “I need all of revision n+1". Startup is a bit of a conundrum, because the app has to send a connect message, but if Inspect isn’t running when the app starts, then there is nothing to talk to. Thus, when you open inspect it is just waiting for an app to “appear”. Remember: you can embed 20 apps on a single page. I guess each app could poll for inspect if it hasn’t reached it, but simple interacting with the app “fixes it”, because then the app knows to try to talk to Inspect. I’m sure this could be made better, but I don’t currently have the time to work on it, test it, and then do the hour of deployments stuff to get it out.

tony.kay19:11:11

It really should work if you open the app with Inspect open, so that is a minor bug, but just interacting with the app should “wake it up” I think, no?

Ola Sikström20:11:57

Is the latest inspector version expected to work at https://book.fulcrologic.com/ at the moment? I seem to get "revision: nil" no matter what i try.

Ola Sikström21:11:00

Seems like the book is running version 3.0.8, so i assume that's a no then?

Ola Sikström22:11:11

That was it. Installed an older version of inspect, and now it works fine. https://github.com/fulcrologic/fulcro-developer-guide/pull/60 with added instructions.

tony.kay01:11:52

Ah, thanks. I had overlooked that. I upgrade the book’s deps, and recompiled, and also finished making some demos work that I hadn’t gotten around to porting from 2.x

👍 6
Henry15:11:03

@U0CKQ19AQ Your explanation is spot on and helps me make sense of how Inspect works behind the scene. Agree that this is a very minor issue. In case of "Revision nil" situation that is not due to incompatible versions, one can easily "wake it up" by either interacting with the app or simply re-opening Chrome Dev Tools. To me, it is a good enough solution already.