mirror of https://github.com/garrytan/gstack.git
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:
parent
1652f224c7
commit
481f454a1b
|
|
@ -63,6 +63,10 @@ export async function checkMockup(imagePath: string, brief: string): Promise<Che
|
||||||
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
const error = await response.text();
|
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
|
// Non-blocking: if vision check fails, default to PASS with warning
|
||||||
console.error(`Vision check API error (${response.status}): ${error}`);
|
console.error(`Vision check API error (${response.status}): ${error}`);
|
||||||
return { pass: true, issues: "Vision check unavailable — skipped" };
|
return { pass: true, issues: "Vision check unavailable — skipped" };
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,13 @@ export async function evolve(options: EvolveOptions): Promise<void> {
|
||||||
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
const error = await response.text();
|
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)}`);
|
throw new Error(`API error (${response.status}): ${error.slice(0, 300)}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,13 @@ async function callWithThreading(
|
||||||
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
const error = await response.text();
|
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)}`);
|
throw new Error(`API error (${response.status}): ${error.slice(0, 300)}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -142,6 +149,13 @@ async function callFresh(
|
||||||
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
const error = await response.text();
|
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)}`);
|
throw new Error(`API error (${response.status}): ${error.slice(0, 300)}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,9 @@ async function generateVariant(
|
||||||
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
const error = await response.text();
|
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)}` };
|
return { path: outputPath, success: false, error: `API error (${response.status}): ${error.slice(0, 200)}` };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue