Compare commits

...

2 Commits

Author SHA1 Message Date
diegosouzapw
763fdf3135 chore: release v2.3.8 — OAuthModal [object Object] fix 2026-03-12 12:42:40 -03:00
diegosouzapw
82314562e7 fix: OAuthModal [object Object] - extract message from error objects
All 3 throw new Error(data.error) replaced with proper extraction:
  typeof error === object ? error.message : error
Fixes Cline and other OAuth providers showing [object Object] on connection failure
2026-03-12 12:39:42 -03:00
3 changed files with 29 additions and 4 deletions

View File

@@ -1,5 +1,12 @@
# Changelog
## [2.3.8] - 2026-03-12
### Fixed
- **OAuthModal**: Fix `[object Object]` displayed on all OAuth connection errors — properly extract `.message` from error response objects in all 3 `throw new Error(data.error)` calls (exchange, device-code, authorize)
- Affects Cline, Codex, GitHub, Qwen, Kiro, and all other OAuth providers
## [2.3.7] - 2026-03-12
### Fixed

View File

@@ -1,6 +1,6 @@
{
"name": "omniroute",
"version": "2.3.7",
"version": "2.3.8",
"description": "Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",
"type": "module",
"bin": {

View File

@@ -87,7 +87,13 @@ export default function OAuthModal({
});
const data = await res.json();
if (!res.ok) throw new Error(data.error);
if (!res.ok) {
const errMsg =
typeof data.error === "object" && data.error !== null
? (data.error as any).message || JSON.stringify(data.error)
: data.error || "Exchange failed";
throw new Error(errMsg);
}
setStep("success");
onSuccess?.();
@@ -180,7 +186,13 @@ export default function OAuthModal({
const res = await fetch(`/api/oauth/${provider}/device-code`);
const data = await res.json();
if (!res.ok) throw new Error(data.error);
if (!res.ok) {
const errMsg =
typeof data.error === "object" && data.error !== null
? (data.error as any).message || JSON.stringify(data.error)
: data.error || "Request failed";
throw new Error(errMsg);
}
setDeviceData(data);
@@ -281,7 +293,13 @@ export default function OAuthModal({
`/api/oauth/${provider}/authorize?redirect_uri=${encodeURIComponent(redirectUri)}`
);
const data = await res.json();
if (!res.ok) throw new Error(data.error);
if (!res.ok) {
const errMsg =
typeof data.error === "object" && data.error !== null
? (data.error as any).message || JSON.stringify(data.error)
: data.error || "Authorization failed";
throw new Error(errMsg);
}
setAuthData({ ...data, redirectUri });