fix(rflows): fix Openfort wallet label — colon not allowed in name

Openfort rejects ':' in player name query param. Changed label from
'user:email@example.com' to just 'email@example.com'. Also improved
error serialization for Openfort's non-standard APIError objects.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2026-03-10 19:30:27 -07:00
parent 01a794b0f2
commit 30a409b2f8
1 changed files with 5 additions and 2 deletions

View File

@ -173,7 +173,7 @@ routes.post("/api/flows/user-onramp", async (c) => {
const provider = 'transak';
// 1. Find or create Openfort smart wallet for this user (one wallet per email)
const wallet = await _openfort.findOrCreateWallet(`user:${email}`, {
const wallet = await _openfort.findOrCreateWallet(email, {
type: 'user-onramp',
email,
});
@ -241,7 +241,10 @@ routes.post("/api/flows/user-onramp", async (c) => {
});
} catch (err) {
console.error("[rflows] user-onramp failed:", err);
const message = err instanceof Error ? err.message : String(err);
let message: string;
if (err instanceof Error) message = err.message;
else if (err && typeof err === 'object') message = JSON.stringify(err);
else message = String(err);
return c.json({ error: message }, 500);
}
});