mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-05 05:05:08 +02:00
fix: friendly OpenAI org error on all design commands
Previously only generate.ts showed a user-friendly message when the OpenAI org wasn't verified. Now evolve, iterate, variants, and check all detect the 403 + "organization must be verified" pattern and show a clear message with the correct verification URL.
This commit is contained in:
@@ -63,6 +63,10 @@ export async function checkMockup(imagePath: string, brief: string): Promise<Che
|
||||
|
||||
if (!response.ok) {
|
||||
const error = await response.text();
|
||||
if (response.status === 403 && error.includes("organization must be verified")) {
|
||||
console.error("OpenAI organization verification required. Go to https://platform.openai.com/settings/organization to verify.");
|
||||
return { pass: true, issues: "OpenAI org not verified — vision check skipped" };
|
||||
}
|
||||
// Non-blocking: if vision check fails, default to PASS with warning
|
||||
console.error(`Vision check API error (${response.status}): ${error}`);
|
||||
return { pass: true, issues: "Vision check unavailable — skipped" };
|
||||
|
||||
@@ -71,6 +71,13 @@ export async function evolve(options: EvolveOptions): Promise<void> {
|
||||
|
||||
if (!response.ok) {
|
||||
const error = await response.text();
|
||||
if (response.status === 403 && error.includes("organization must be verified")) {
|
||||
throw new Error(
|
||||
"OpenAI organization verification required.\n"
|
||||
+ "Go to https://platform.openai.com/settings/organization to verify.\n"
|
||||
+ "After verification, wait up to 15 minutes for access to propagate.",
|
||||
);
|
||||
}
|
||||
throw new Error(`API error (${response.status}): ${error.slice(0, 300)}`);
|
||||
}
|
||||
|
||||
|
||||
@@ -102,6 +102,13 @@ async function callWithThreading(
|
||||
|
||||
if (!response.ok) {
|
||||
const error = await response.text();
|
||||
if (response.status === 403 && error.includes("organization must be verified")) {
|
||||
throw new Error(
|
||||
"OpenAI organization verification required.\n"
|
||||
+ "Go to https://platform.openai.com/settings/organization to verify.\n"
|
||||
+ "After verification, wait up to 15 minutes for access to propagate.",
|
||||
);
|
||||
}
|
||||
throw new Error(`API error (${response.status}): ${error.slice(0, 300)}`);
|
||||
}
|
||||
|
||||
@@ -142,6 +149,13 @@ async function callFresh(
|
||||
|
||||
if (!response.ok) {
|
||||
const error = await response.text();
|
||||
if (response.status === 403 && error.includes("organization must be verified")) {
|
||||
throw new Error(
|
||||
"OpenAI organization verification required.\n"
|
||||
+ "Go to https://platform.openai.com/settings/organization to verify.\n"
|
||||
+ "After verification, wait up to 15 minutes for access to propagate.",
|
||||
);
|
||||
}
|
||||
throw new Error(`API error (${response.status}): ${error.slice(0, 300)}`);
|
||||
}
|
||||
|
||||
|
||||
@@ -77,6 +77,9 @@ async function generateVariant(
|
||||
|
||||
if (!response.ok) {
|
||||
const error = await response.text();
|
||||
if (response.status === 403 && error.includes("organization must be verified")) {
|
||||
return { path: outputPath, success: false, error: "OpenAI organization verification required. Go to https://platform.openai.com/settings/organization to verify." };
|
||||
}
|
||||
return { path: outputPath, success: false, error: `API error (${response.status}): ${error.slice(0, 200)}` };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user