From 16ae4bdc22a01f0cec6b90958332c694c692f692 Mon Sep 17 00:00:00 2001 From: lucaronin Date: Tue, 24 Feb 2026 10:18:50 +0100 Subject: [PATCH] fix: surface actual error messages in GitHub OAuth login flow The frontend was swallowing Tauri backend errors (which are strings, not Error instances) and always showing generic "Failed to start login." Now the actual error message is displayed. Also adds User-Agent header to device flow requests, a clear error message for 404 responses, and a test for the 404 case. Co-Authored-By: Claude Opus 4.6 --- src-tauri/src/github.rs | 28 +++++++++++++++++++++++++++- src/components/SettingsPanel.tsx | 4 ++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src-tauri/src/github.rs b/src-tauri/src/github.rs index a4f9172e..fa1bc841 100644 --- a/src-tauri/src/github.rs +++ b/src-tauri/src/github.rs @@ -175,14 +175,22 @@ async fn github_device_flow_start_with_base(base_url: &str) -> Result { stopPolling() setOauthStatus('error') - setErrorMessage(err instanceof Error ? err.message : 'Polling failed.') + setErrorMessage(typeof err === 'string' ? err : err instanceof Error ? err.message : 'Polling failed.') }) } catch (err) { setOauthStatus('error') - setErrorMessage(err instanceof Error ? err.message : 'Failed to start login.') + setErrorMessage(typeof err === 'string' ? err : err instanceof Error ? err.message : 'Failed to start login.') } }, [onConnected, stopPolling])