FAQ - Troubleshooting

This page is about some of the known errors you may encounter when using Franklin and how to deal with them. If you encounter an error that is not mentioned here, then it's probably a bug and it would be great if you could open an issue!

Error on interruption

You may (rarely) get an error thrown at you when interrupting the server with <CTRL>+C, particularly when using Juno. There are a couple of reasons this may happen, both unrelated to Franklin.

Juno

Juno (very rarely) crashes if you coincidentally press <CTRL>+C while Juno is doing something in the background (Juno issue #309).

The stack trace you will see will seem particularly obscure, for instance:

InterruptException:
_string_n at string.jl:60 [inlined]
StringVector at iobuffer.jl:31 [inlined]
#IOBuffer#320(::Bool, ::Bool, ::Nothing, ::Bool, ::Int64, ::Int64, ::Type{Base.GenericIOBuffer{Array{UInt8,1}}}) at iobuffer.jl:114
(...)

or

julia> "miniERROR: InterruptException:
Stacktrace:
 [1] poptaskref(::Base.InvasiveLinkedListSynchronized{Task}) at ./task.jl:564
 [2] wait() at ./task.jl:591
(...)

Solution: ignore the error, kill then restart the server or, failing that, kill and restart Julia.

Not-Juno

The LiveServer.jl package, which handles the live-serving of the files, is based upon HTTP.jl. The latter has a fairly complex codebase with a number of asynchronous tasks and is known to sometimes crash in (somewhat) mysterious ways.

If the stack trace mentions uv_write, uv_write_async, libuv or something of the sort, then this is an example of known but mysterious way.

Like the "Juno" case, these errors are caused when you happen to press interrupt just as the package was doing something important in the background. This is very rare but can happen and you can safely ignore it.

Solution: ignore the error, kill then restart the server or, failing that, kill and restart Julia.

IOStream error

See the comment about HTTP.jl in the subsection above.