Skip to content

Commit bae8eb2

Browse files
committed
Handle proxy error
1 parent ca76a66 commit bae8eb2

File tree

2 files changed

+16
-17
lines changed

2 files changed

+16
-17
lines changed

apps/studio/electron/main/chat/index.ts

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,6 @@ class LlmManager {
8686
model,
8787
messages,
8888
abortSignal: this.abortController?.signal,
89-
onError: (error) => {
90-
console.error('Error', JSON.stringify(error, null, 2));
91-
throw error;
92-
},
9389
maxSteps: 10,
9490
tools: chatToolSet,
9591
maxTokens: 64000,
@@ -101,6 +97,9 @@ class LlmManager {
10197
this.emitMessagePart(toolResult);
10298
}
10399
},
100+
onError: (error) => {
101+
throw error;
102+
},
104103
});
105104
const streamParts: TextStreamPart<ToolSet>[] = [];
106105
for await (const partialStream of fullStream) {
@@ -115,7 +114,6 @@ class LlmManager {
115114
};
116115
} catch (error: any) {
117116
try {
118-
console.error('Error', error);
119117
if (error?.error?.statusCode) {
120118
if (error?.error?.statusCode === 403) {
121119
const rateLimitError = JSON.parse(
@@ -125,19 +123,16 @@ class LlmManager {
125123
type: 'rate-limited',
126124
rateLimitResult: rateLimitError,
127125
};
128-
} else {
129-
return {
130-
type: 'error',
131-
message: error.error.responseBody,
132-
};
133126
}
134127
}
135-
const errorMessage = this.getErrorMessage(error);
128+
console.log('C', error.error.lastError.responseBody);
129+
const errorMessage = JSON.parse(error.error.lastError.responseBody).error.message;
136130
return { message: errorMessage, type: 'error' };
137-
} catch (error) {
138-
console.error('Error parsing error', error);
139-
return { message: 'An unknown error occurred', type: 'error' };
131+
} catch (parseError) {
132+
console.error('Error parsing error', parseError);
133+
return { message: JSON.stringify(parseError), type: 'error' };
140134
} finally {
135+
this.abortController?.abort();
141136
this.abortController = null;
142137
}
143138
}
@@ -159,7 +154,7 @@ class LlmManager {
159154
mainWindow?.webContents.send(MainChannels.CHAT_STREAM_PARTIAL, res);
160155
}
161156

162-
private getErrorMessage(error: unknown): string {
157+
private getErrorMessage(error: any): string {
163158
if (error instanceof Error) {
164159
return error.message;
165160
}
@@ -172,7 +167,11 @@ class LlmManager {
172167
if (error && typeof error === 'object' && 'message' in error) {
173168
return String(error.message);
174169
}
175-
return 'An unknown chat error occurred';
170+
171+
if (error?.error?.lastError?.responseBody) {
172+
return JSON.parse(error.error.lastError.responseBody).error;
173+
}
174+
return JSON.stringify(error);
176175
}
177176

178177
public async generateSuggestions(messages: CoreMessage[]): Promise<ChatSuggestion[]> {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"dev:studio": "bun --filter @onlook/studio dev",
2828
"build": "bun --filter '!@onlook/web' build",
2929
"ci:build": "bun run build:foundation && bun --filter '!@onlook/web' build",
30-
"dev": "bun --filter '!@onlook/web' dev",
30+
"dev": "bun --elide-lines=0 --filter '!@onlook/web' dev",
3131
"dev:web": "bun --filter @onlook/web dev",
3232
"test": "bun --filter '*' test",
3333
"format": "bun --filter '*' format",

0 commit comments

Comments
 (0)