@@ -14,12 +14,14 @@ import { featureName, startTaskAssistLimitReachedMessage } from '../constants'
14
14
import { CodeReference } from '../../amazonq/webview/ui/connector'
15
15
import {
16
16
ApiError ,
17
+ ApiServiceError ,
17
18
CodeIterationLimitError ,
18
19
ContentLengthError ,
20
+ FeatureDevServiceError ,
19
21
MonthlyConversationLimitError ,
20
22
UnknownApiError ,
21
23
} from '../errors'
22
- import { ToolkitError , isAwsError } from '../../shared/errors'
24
+ import { isAwsError } from '../../shared/errors'
23
25
import { getCodewhispererConfig } from '../../codewhisperer/client/codewhisperer'
24
26
import { createCodeWhispererChatStreamingClient } from '../../shared/clients/codewhispererChatClient'
25
27
import { getClientId , getOptOutPreference , getOperatingSystem } from '../../shared/telemetry/util'
@@ -93,7 +95,7 @@ export class FeatureDevClient implements FeatureClient {
93
95
) {
94
96
throw new MonthlyConversationLimitError ( e . message )
95
97
}
96
- throw new ApiError ( e . message , 'CreateConversation' , e . code , e . statusCode ?? 400 )
98
+ throw ApiError . of ( e . message , 'CreateConversation' , e . code , e . statusCode ?? 500 )
97
99
}
98
100
99
101
throw new UnknownApiError ( e instanceof Error ? e . message : 'Unknown error' , 'CreateConversation' )
@@ -136,7 +138,7 @@ export class FeatureDevClient implements FeatureClient {
136
138
if ( e . code === 'ValidationException' && e . message . includes ( 'Invalid contentLength' ) ) {
137
139
throw new ContentLengthError ( )
138
140
}
139
- throw new ApiError ( e . message , 'CreateUploadUrl' , e . code , e . statusCode ?? 400 )
141
+ throw ApiError . of ( e . message , 'CreateUploadUrl' , e . code , e . statusCode ?? 500 )
140
142
}
141
143
142
144
throw new UnknownApiError ( e instanceof Error ? e . message : 'Unknown error' , 'CreateUploadUrl' )
@@ -198,8 +200,10 @@ export class FeatureDevClient implements FeatureClient {
198
200
) {
199
201
throw new CodeIterationLimitError ( )
200
202
}
203
+ throw ApiError . of ( e . message , 'StartTaskAssistCodeGeneration' , e . code , e . statusCode ?? 500 )
201
204
}
202
- throw new ToolkitError ( ( e as Error ) . message , { code : 'StartCodeGenerationFailed' } )
205
+
206
+ throw new UnknownApiError ( e instanceof Error ? e . message : 'Unknown error' , 'StartTaskAssistCodeGeneration' )
203
207
}
204
208
}
205
209
@@ -220,7 +224,12 @@ export class FeatureDevClient implements FeatureClient {
220
224
( e as any ) . requestId
221
225
} `
222
226
)
223
- throw new ToolkitError ( ( e as Error ) . message , { code : 'GetCodeGenerationFailed' } )
227
+
228
+ if ( isAwsError ( e ) ) {
229
+ throw ApiError . of ( e . message , 'GetTaskAssistCodeGeneration' , e . code , e . statusCode ?? 500 )
230
+ }
231
+
232
+ throw new UnknownApiError ( e instanceof Error ? e . message : 'Unknown error' , 'GetTaskAssistCodeGeneration' )
224
233
}
225
234
}
226
235
@@ -235,7 +244,12 @@ export class FeatureDevClient implements FeatureClient {
235
244
const archiveResponse = await streamingClient . exportResultArchive ( params )
236
245
const buffer : number [ ] = [ ]
237
246
if ( archiveResponse . body === undefined ) {
238
- throw new ToolkitError ( 'Empty response from CodeWhisperer Streaming service.' )
247
+ throw new ApiServiceError (
248
+ 'Empty response from CodeWhisperer Streaming service.' ,
249
+ 'ExportResultArchive' ,
250
+ 'EmptyResponse' ,
251
+ 500
252
+ )
239
253
}
240
254
for await ( const chunk of archiveResponse . body ) {
241
255
if ( chunk . internalServerException !== undefined ) {
@@ -274,7 +288,12 @@ export class FeatureDevClient implements FeatureClient {
274
288
( e as any ) . requestId
275
289
} `
276
290
)
277
- throw new ToolkitError ( ( e as Error ) . message , { code : 'ExportResultArchiveFailed' } )
291
+
292
+ if ( isAwsError ( e ) ) {
293
+ throw ApiError . of ( e . message , 'ExportResultArchive' , e . code , e . statusCode ?? 500 )
294
+ }
295
+
296
+ throw new FeatureDevServiceError ( e instanceof Error ? e . message : 'Unknown error' , 'ExportResultArchive' )
278
297
}
279
298
}
280
299
0 commit comments