Recent errors with WGLMakie on Pluto

I don’t know what happened but I started getting this warning on a previously working Pluto notebook with WGLMakie plots:

┌ Warning: Waiting for page sessions to load.
│                 This can happen for the first cells to run, or is indicative of faulty state
└ @ JSServe ~/.julia/packages/JSServe/E7QrV/src/display.jl:162

After the warning is shown in the Julia REPL, the following error is thrown in the Pluto cell:

Failed to show value:

Could not initialize Page. Open an issue at JSServe.jl.

error(::String)@error.jl:33
assure_ready(::JSServe.Page)@display.jl:169
show_in_page(::JSServe.Page, ::JSServe.App)@display.jl:262
show(::IOContext{IOBuffer}, ::MIME{Symbol("text/html")}, ::JSServe.App)@display.jl:377
backend_show@display.jl:25[inlined]
show(::IOContext{IOBuffer}, ::MIME{Symbol("text/html")}, ::Makie.Scene)@display.jl:117
show@display.jl:106[inlined]
show(::IOContext{IOBuffer}, ::MIME{Symbol("text/html")}, ::Makie.FigureAxisPlot)@display.jl:105
show_richest(::IOContext{IOBuffer}, ::Any)@PlutoRunner.jl:654
var"#sprint_withreturned#28"(::IOContext{Base.DevNull}, ::Int64, ::typeof(Main.PlutoRunner.sprint_withreturned), ::Function, ::Makie.FigureAxisPlot)@PlutoRunner.jl:591
format_output_default(::Any, ::Any)@PlutoRunner.jl:515
#format_output#17@PlutoRunner.jl:532[inlined]
formatted_result_of(::Base.UUID, ::Bool, ::Nothing, ::Module)@PlutoRunner.jl:448
top-level scope@none:1

Is there any recent update to the Makie or Pluto stack that could have caused it?

1 Like

I have the exactly same issue… Any hint to fix the issue would be appreciated.

What are your versions and what did you run? I can’t reproduce it with the newest Pluto + WGLMakie version…
Note, that the Page() thing is a bit brittle and absolutely must be displayed before anything else… And if it isn’t, one currently needs to restart the notebook.

4 Likes

Hi, Simon,
I am using the newest packages on Julia 1.6.
I followed your suggestion carefully, and it works now! It seems still fragile, but now I know how to make it work.
Thank you very much.

With

[824d6782] JSServe v1.2.3
[276b4fcb] WGLMakie v0.4.4
[c3e4b0f8] Pluto v0.15.1

and

using WGLMakie, JSServe; JSServe.Page()
scatter(1:4)

I get an error

Could not initialize Page. Open an issue at JSServe.jl.

error(::String)@error.jl:33
assure_ready(::JSServe.Page)@display.jl:169
show_in_page(::JSServe.Page, ::JSServe.App)@display.jl:262
show(::IOContext{IOBuffer}, ::MIME{Symbol("text/html")}, ::JSServe.App)@display.jl:377
backend_show@display.jl:25[inlined]
var"#show#910"(::Bool, ::typeof(show), ::IOContext{IOBuffer}, ::MIME{Symbol("text/html")}, ::Makie.Scene)@display.jl:113
show@display.jl:107[inlined]
#show#909@display.jl:104[inlined]
show@display.jl:104[inlined]
#show#908@display.jl:103[inlined]
show(::IOContext{IOBuffer}, ::MIME{Symbol("text/html")}, ::Makie.FigureAxisPlot)@display.jl:103
show_richest(::IOContext{IOBuffer}, ::Any)@PlutoRunner.jl:654
var"#sprint_withreturned#28"(::IOContext{Base.DevNull}, ::Int64, ::typeof(Main.PlutoRunner.sprint_withreturned), ::Function, ::Makie.FigureAxisPlot)@PlutoRunner.jl:591
format_output_default(::Any, ::Any)@PlutoRunner.jl:515
#format_output#17@PlutoRunner.jl:532[inlined]
formatted_result_of(::Base.UUID, ::Bool, ::Nothing, ::Module)@PlutoRunner.jl:448
top-level scope@none:1

Any suggestions?

The Page needs to be displayed! So it needs it’s own cell

So different from what you suggested earlier, Should JSServe.Page() be in own cell afterall?

Screenshot from 2021-07-28 13-30-04

So different from what you suggested earlier

I’m not sure how that could imply anything else, but displaying the page before displaying anything else :smiley:
The screenshot I posted should also help clearing up any confusion…

Did you restart the notebook after changing the order of how you display things?

For sure I am confused but because I usually am, I am getting used to it :grinning:.

So I did exactly like you suggested in the screenshot and got that error message, I have also updated Pluto, JSServe, and WGLMakie and restarted Pluto & Julia multiple times.

So should I run JSServe.Page() in a separate cell?

Yes!

# cell 1
begin 
    using WGLMakie, JSServe
    Page()
end
# cell 2
begin 
    scatter(1:4)
end

If that errors in a completely fresh Pluto session, try opening the browser console (e.g with ctrl+shift+i) and post any errors here…

​ Pluto.jl, by Fons van der Plas (https://github.com/fonsp) and Mikołaj Bochenski (https://github.com/malyvsen) 🌈
PlutoConnection.js:178 Waiting for socket to open... 8:09:58 PM
PlutoConnection.js:170 Socket opened 8:09:58 PM
PlutoConnection.js:382 Hello?
PlutoConnection.js:384 Hello!
PlutoConnection.js:388 Object
edit:1 The resource http://localhost:1234/vollkorn.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.
:9284/assetserver/f3e1e8e1744164fefa445efb54668db6d79a24e3-msgpack.min.js:1 Failed to load resource: net::ERR_CONNECTION_REFUSED
:9284/assetserver/645855f771322469535815cb5dea8e630ac14e9c-pako_inflate.min.js:1 Failed to load resource: net::ERR_CONNECTION_REFUSED
:9284/assetserver/e58d102035c659a26a986f7b29e7c436a39fc341-Base64.js:1 Failed to load resource: net::ERR_CONNECTION_REFUSED
:9284/assetserver/1c70c4e8746f3df4bfca03207c324380c20399aa-JSServe.js:1 Failed to load resource: net::ERR_CONNECTION_REFUSED
CellOutput.js:288 Couldn't execute script: <script data-jscall-id=​"9" type=​"text/​javascript">​…​</script>​
execute_scripttags @ CellOutput.js:288
CellOutput.js:290 TypeError: JSServe.track_deleted_sessions is not a function
    at eval (eval at execute_dynamic_function (CellOutput.js:204), <anonymous>:7:13)
    at eval (eval at execute_dynamic_function (CellOutput.js:204), <anonymous>:11:3)
    at execute_dynamic_function (CellOutput.js:204)
    at execute_scripttags (CellOutput.js:264)
    at async CellOutput.js:333
execute_scripttags @ CellOutput.js:290
Logging.js:21 ┌ Warn: Waiting for page sessions to load.
                This can happen for the first cells to run, or is indicative of faulty state
handle_log @ Logging.js:21
CellOutput.js:288 Couldn't execute script: <script data-jscall-id=​"18" type=​"text/​javascript">​…​</script>​
execute_scripttags @ CellOutput.js:288
CellOutput.js:290 TypeError: JSServe.track_deleted_sessions is not a function
    at eval (eval at execute_dynamic_function (CellOutput.js:204), <anonymous>:7:13)
    at eval (eval at execute_dynamic_function (CellOutput.js:204), <anonymous>:11:3)
    at execute_dynamic_function (CellOutput.js:204)
    at execute_scripttags (CellOutput.js:264)
    at async CellOutput.js:333
execute_scripttags @ CellOutput.js:290
Logging.js:21 ┌ Warn: Waiting for page sessions to load.
                This can happen for the first cells to run, or is indicative of faulty state
handle_log @ Logging.js:21

@sdanisch this error started happening even with the correct setup. That is why I opened this discussion here. You can find a reproducible example in my JuliaCon talk: GitHub - juliohm/JuliaCon2021: Pluto presentation for JuliaCon2021 talk

The first plots of the notebook work fine but the last plots sometimes fail.

Hm, do you have any more details? I can run that notebook just fine…
Any specific browser? Are you exporting the notebook to html? What Pluto version?

The notebook runs now locally OK, thanks for your time! I was trying to run it on a server via ssh tunnel and that did not work. Is there some communication going on that uses other ports than 1234?

Yes:
http://makie.juliaplots.org/stable/remote.html#WGLMakie

I remember the issue started when I updated from Julia v1.6.0 to Julia v1.6.2 and also updated Pluto to v0.15.1. I downgraded to Julia v1.6.0 but the error was still there. I was running Pluto on Chromium Version 92.0.4515.107 (Official Build) Arch Linux (64-bit).

Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, skylake)
Environment:
  JULIA_NUM_THREADS = 8

Will try to run again today to see if the error is still there.

Now this is what I get when I open the notebook:

I think this latest issue may be related to a recent update on Manjaro. The Makie window is showing that my GPU may not support WebGL, but that is definitely not true as I was using it just fine for months.

Trying o debug it…

Yes, suddenly everything started working again :man_shrugging:t4: