From 641ac3fe747dd6ceab3ab5389b22d5484a9541d3 Mon Sep 17 00:00:00 2001 From: Codinget Date: Thu, 16 Apr 2026 18:43:58 +0000 Subject: [PATCH] fix(tsconnect): guard nil n.Prefs in notify callback n.Prefs is *PrefsView (a pointer), so calling n.Prefs.Valid() on a Notify where Prefs is nil auto-dereferenced nil and panicked. The callback's defer recover() swallowed the panic, which meant every Notify without Prefs (Health-only, FilesWaiting, IncomingFiles, OutgoingFiles, etc.) never reached the file-related JS calls. Co-Authored-By: Claude Opus 4.7 --- cmd/tsconnect/wasm/wasm_js.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/tsconnect/wasm/wasm_js.go b/cmd/tsconnect/wasm/wasm_js.go index 5c91fcd4b..e20ab40a7 100644 --- a/cmd/tsconnect/wasm/wasm_js.go +++ b/cmd/tsconnect/wasm/wasm_js.go @@ -408,7 +408,7 @@ func (i *jsIPN) run(jsCallbacks js.Value) { } } } - if n.Prefs.Valid() { + if n.Prefs != nil && n.Prefs.Valid() { jsCallbacks.Call("notifyExitNode", string(n.Prefs.ExitNodeID())) } if n.BrowseToURL != nil {