Skip to content

Commit b24e963

Browse files
authored
feat: add conversation id on error messages in amazonqFeatureDev (#4978)
1 parent b7bcf11 commit b24e963

File tree

3 files changed

+50
-14
lines changed

3 files changed

+50
-14
lines changed

packages/core/src/amazonqFeatureDev/controllers/chat/controller.ts

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ export class FeatureDevController {
194194
// TODO add type
195195
private async processUserChatMessage(message: any) {
196196
if (message.message === undefined) {
197-
this.messenger.sendErrorMessage('chatMessage should be set', message.tabID, 0, undefined)
197+
this.messenger.sendErrorMessage('chatMessage should be set', message.tabID, 0, undefined, undefined)
198198
return
199199
}
200200

@@ -232,7 +232,13 @@ export class FeatureDevController {
232232
}
233233
} catch (err: any) {
234234
if (err instanceof ContentLengthError) {
235-
this.messenger.sendErrorMessage(err.message, message.tabID, this.retriesRemaining(session))
235+
this.messenger.sendErrorMessage(
236+
err.message,
237+
message.tabID,
238+
this.retriesRemaining(session),
239+
undefined,
240+
session?.conversationIdUnsafe
241+
)
236242
this.messenger.sendAnswer({
237243
type: 'system-prompt',
238244
tabID: message.tabID,
@@ -247,7 +253,13 @@ export class FeatureDevController {
247253
} else if (err instanceof MonthlyConversationLimitError) {
248254
this.messenger.sendMonthlyLimitError(message.tabID)
249255
} else if (err instanceof PlanIterationLimitError) {
250-
this.messenger.sendErrorMessage(err.message, message.tabID, this.retriesRemaining(session))
256+
this.messenger.sendErrorMessage(
257+
err.message,
258+
message.tabID,
259+
this.retriesRemaining(session),
260+
undefined,
261+
session?.conversationIdUnsafe
262+
)
251263
this.messenger.sendAnswer({
252264
type: 'system-prompt',
253265
tabID: message.tabID,
@@ -265,7 +277,13 @@ export class FeatureDevController {
265277
],
266278
})
267279
} else if (err instanceof CodeIterationLimitError) {
268-
this.messenger.sendErrorMessage(err.message, message.tabID, this.retriesRemaining(session))
280+
this.messenger.sendErrorMessage(
281+
err.message,
282+
message.tabID,
283+
this.retriesRemaining(session),
284+
undefined,
285+
session?.conversationIdUnsafe
286+
)
269287
this.messenger.sendAnswer({
270288
type: 'system-prompt',
271289
tabID: message.tabID,
@@ -286,7 +304,8 @@ export class FeatureDevController {
286304
errorMessage,
287305
message.tabID,
288306
this.retriesRemaining(session),
289-
session?.state.phase
307+
session?.state.phase,
308+
session?.conversationIdUnsafe
290309
)
291310
}
292311

@@ -447,7 +466,8 @@ export class FeatureDevController {
447466
errorMessage,
448467
message.tabID,
449468
this.retriesRemaining(session),
450-
session?.state.phase
469+
session?.state.phase,
470+
session?.conversationIdUnsafe
451471
)
452472
}
453473
}
@@ -502,7 +522,8 @@ export class FeatureDevController {
502522
createUserFacingErrorMessage(`Failed to insert code changes: ${err.message}`),
503523
message.tabID,
504524
this.retriesRemaining(session),
505-
session?.state.phase
525+
session?.state.phase,
526+
session?.conversationIdUnsafe
506527
)
507528
}
508529
}
@@ -546,7 +567,8 @@ export class FeatureDevController {
546567
createUserFacingErrorMessage(`Failed to retry request: ${err.message}`),
547568
message.tabID,
548569
this.retriesRemaining(session),
549-
session?.state.phase
570+
session?.state.phase,
571+
session?.conversationIdUnsafe
550572
)
551573
} finally {
552574
// Finish processing the event
@@ -730,7 +752,8 @@ export class FeatureDevController {
730752
createUserFacingErrorMessage(err.message),
731753
message.tabID,
732754
this.retriesRemaining(session),
733-
session?.state.phase
755+
session?.state.phase,
756+
session?.conversationIdUnsafe
734757
)
735758
}
736759
}

packages/core/src/amazonqFeatureDev/controllers/chat/messenger/messenger.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,20 @@ export class Messenger {
5555
this.sendUpdatePlaceholder(tabID, 'Chat input is disabled')
5656
}
5757

58-
public sendErrorMessage(errorMessage: string, tabID: string, retries: number, phase?: SessionStatePhase) {
58+
public sendErrorMessage(
59+
errorMessage: string,
60+
tabID: string,
61+
retries: number,
62+
phase?: SessionStatePhase,
63+
conversationId?: string
64+
) {
65+
const conversationIdText = conversationId ? `\n\nConversation ID: **${conversationId}**` : ''
66+
5967
if (retries === 0) {
6068
this.dispatcher.sendErrorMessage(
6169
new ErrorMessage(
6270
`Sorry, we're unable to provide a response at this time. Please try again later or share feedback with our team to help us troubleshoot.`,
63-
errorMessage,
71+
errorMessage + conversationIdText,
6472
tabID
6573
)
6674
)
@@ -84,7 +92,7 @@ export class Messenger {
8492
this.dispatcher.sendErrorMessage(
8593
new ErrorMessage(
8694
`Sorry, we're experiencing an issue on our side. Would you like to try again?`,
87-
errorMessage,
95+
errorMessage + conversationIdText,
8896
tabID
8997
)
9098
)
@@ -93,7 +101,7 @@ export class Messenger {
93101
this.dispatcher.sendErrorMessage(
94102
new ErrorMessage(
95103
`Sorry, we're experiencing an issue on our side. Would you like to try again?`,
96-
errorMessage,
104+
errorMessage + conversationIdText,
97105
tabID
98106
)
99107
)
@@ -103,7 +111,7 @@ export class Messenger {
103111
this.dispatcher.sendErrorMessage(
104112
new ErrorMessage(
105113
`Sorry, we encountered a problem when processing your request.`,
106-
errorMessage,
114+
errorMessage + conversationIdText,
107115
tabID
108116
)
109117
)

packages/core/src/amazonqFeatureDev/session/session.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,11 @@ export class Session {
234234
return this._conversationId
235235
}
236236

237+
// Used for cases where it is not needed to have conversationId
238+
get conversationIdUnsafe() {
239+
return this._conversationId
240+
}
241+
237242
get latestMessage() {
238243
return this._latestMessage
239244
}

0 commit comments

Comments
 (0)