diff --git a/plugins/decky-vault/main.py b/plugins/decky-vault/main.py index 83eebc9..f28695d 100644 --- a/plugins/decky-vault/main.py +++ b/plugins/decky-vault/main.py @@ -872,8 +872,12 @@ exec mangohud "$@" return {"error": "Invalid JSON", "status": response.status} except urllib.error.HTTPError as e: try: - err = json.loads(e.read().decode("utf-8")) - return {**err, "status": e.code} + raw_body = e.read().decode("utf-8") + try: + err = json.loads(raw_body) + return {**err, "status": e.code} + except json.JSONDecodeError: + return {"error": f"Server returned status {e.code} (non-JSON response)", "status": e.code, "body": raw_body[:200]} except Exception: return {"error": f"Server returned status {e.code}", "status": e.code} except urllib.error.URLError as e: diff --git a/plugins/decky-vault/src/components/LibraryAppPanel.tsx b/plugins/decky-vault/src/components/LibraryAppPanel.tsx index ea45ea4..74e98be 100644 --- a/plugins/decky-vault/src/components/LibraryAppPanel.tsx +++ b/plugins/decky-vault/src/components/LibraryAppPanel.tsx @@ -112,7 +112,7 @@ export default function LibraryAppPanel({ appId, title, hardwareSlug, baseUrl }:
- Could not load DeckyVault data. Please try again later. + Could not load DeckyVault data: {fetchError}
diff --git a/plugins/decky-vault/src/patches/LibraryApp.tsx b/plugins/decky-vault/src/patches/LibraryApp.tsx index 4c4658d..947ac6d 100644 --- a/plugins/decky-vault/src/patches/LibraryApp.tsx +++ b/plugins/decky-vault/src/patches/LibraryApp.tsx @@ -54,6 +54,8 @@ export function registerLibraryAppPatch() { if (!child) return null const overview = child.props.children.props.overview if (!overview || !isSteamGameType(overview.app_type)) return null + // Only inject for valid numeric app IDs + if (typeof overview.appid !== 'number' || overview.appid <= 0) return null return child.props.children }, ],