From 1a6402ea0b19351ae5cb4773723d5743ef89b35e Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Tue, 14 Oct 2025 03:32:30 +0000 Subject: [PATCH] Fallback listProfiles join to explicit query cgen-113d32a9dcfe4959bede02c045729106 --- client/lib/aethex-database-adapter.ts | 35 +++++++++++++++++++++------ 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/client/lib/aethex-database-adapter.ts b/client/lib/aethex-database-adapter.ts index be756bc2..8f2442b6 100644 --- a/client/lib/aethex-database-adapter.ts +++ b/client/lib/aethex-database-adapter.ts @@ -364,7 +364,7 @@ export const aethexUserService = { let data: any[] | null = null; try { - const resp = await supabase + let resp = await supabase .from("user_profiles") .select( ` @@ -378,15 +378,34 @@ export const aethexUserService = { .limit(limit); // resp may be { data, error } if (!resp) throw new Error("Empty response from Supabase"); - const anyResp: any = resp as any; - const err = anyResp.error; + let anyResp: any = resp as any; + let err = anyResp.error; if (err) { - if (isTableMissing(err)) { - throw new Error( - 'Supabase table "user_profiles" is missing. Please run the required migrations.', - ); + const message = String(err?.message || err); + if (message.includes("relationship") || message.includes("schema cache")) { + resp = await supabase + .from("user_profiles") + .select( + ` + *, + user_achievements: user_achievements!inner ( + achievements: achievements!inner ( xp_reward ) + ) + `, + ) + .order("updated_at", { ascending: false }) + .limit(limit); + anyResp = resp as any; + err = anyResp.error; + } + if (err) { + if (isTableMissing(err)) { + throw new Error( + 'Supabase table "user_profiles" is missing. Please run the required migrations.', + ); + } + throw new Error(err?.message || String(err)); } - throw new Error(err?.message || String(err)); } data = anyResp.data as any[]; } catch (e: any) {