@@ -14,12 +14,14 @@ import { featureName, startTaskAssistLimitReachedMessage } from '../constants'
1414import { CodeReference } from '../../amazonq/webview/ui/connector'
1515import {
1616 ApiError ,
17+ ApiServiceError ,
1718 CodeIterationLimitError ,
1819 ContentLengthError ,
20+ FeatureDevServiceError ,
1921 MonthlyConversationLimitError ,
2022 UnknownApiError ,
2123} from '../errors'
22- import { ToolkitError , isAwsError } from '../../shared/errors'
24+ import { isAwsError } from '../../shared/errors'
2325import { getCodewhispererConfig } from '../../codewhisperer/client/codewhisperer'
2426import { createCodeWhispererChatStreamingClient } from '../../shared/clients/codewhispererChatClient'
2527import { getClientId , getOptOutPreference , getOperatingSystem } from '../../shared/telemetry/util'
@@ -93,7 +95,7 @@ export class FeatureDevClient implements FeatureClient {
9395 ) {
9496 throw new MonthlyConversationLimitError ( e . message )
9597 }
96- throw new ApiError ( e . message , 'CreateConversation' , e . code , e . statusCode ?? 400 )
98+ throw ApiError . of ( e . message , 'CreateConversation' , e . code , e . statusCode ?? 500 )
9799 }
98100
99101 throw new UnknownApiError ( e instanceof Error ? e . message : 'Unknown error' , 'CreateConversation' )
@@ -136,7 +138,7 @@ export class FeatureDevClient implements FeatureClient {
136138 if ( e . code === 'ValidationException' && e . message . includes ( 'Invalid contentLength' ) ) {
137139 throw new ContentLengthError ( )
138140 }
139- throw new ApiError ( e . message , 'CreateUploadUrl' , e . code , e . statusCode ?? 400 )
141+ throw ApiError . of ( e . message , 'CreateUploadUrl' , e . code , e . statusCode ?? 500 )
140142 }
141143
142144 throw new UnknownApiError ( e instanceof Error ? e . message : 'Unknown error' , 'CreateUploadUrl' )
@@ -198,8 +200,10 @@ export class FeatureDevClient implements FeatureClient {
198200 ) {
199201 throw new CodeIterationLimitError ( )
200202 }
203+ throw ApiError . of ( e . message , 'StartTaskAssistCodeGeneration' , e . code , e . statusCode ?? 500 )
201204 }
202- throw new ToolkitError ( ( e as Error ) . message , { code : 'StartCodeGenerationFailed' } )
205+
206+ throw new UnknownApiError ( e instanceof Error ? e . message : 'Unknown error' , 'StartTaskAssistCodeGeneration' )
203207 }
204208 }
205209
@@ -220,7 +224,12 @@ export class FeatureDevClient implements FeatureClient {
220224 ( e as any ) . requestId
221225 } `
222226 )
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' )
224233 }
225234 }
226235
@@ -235,7 +244,12 @@ export class FeatureDevClient implements FeatureClient {
235244 const archiveResponse = await streamingClient . exportResultArchive ( params )
236245 const buffer : number [ ] = [ ]
237246 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+ )
239253 }
240254 for await ( const chunk of archiveResponse . body ) {
241255 if ( chunk . internalServerException !== undefined ) {
@@ -274,7 +288,12 @@ export class FeatureDevClient implements FeatureClient {
274288 ( e as any ) . requestId
275289 } `
276290 )
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' )
278297 }
279298 }
280299
0 commit comments