Sorry for the delay. I was banned to reply for 7 hours because it was my first day at the forum.
After patient stepping and typing “throw error”, I get the same screenshot as you:
I still don’t understand why I don’t get that error message in the console without manually typing “throw error”. I would have expected to see this anyway (possibly without the stack trace).
Do you mean that by changing the code to “throw error” instead of “throw error.message”, I would get that? I doubt it, but I will try it although right now How to load experimental versions of libraries? is hampering me.
I still think that Observable is catching the error somehow. How else would it be able to show the error in the notebook itself?