From 2bb194872ebc1b8d741b6e7d73b4fd79b76e0b4e Mon Sep 17 00:00:00 2001 From: Kevin Ding Date: Fri, 21 Feb 2025 14:17:05 -0500 Subject: [PATCH] fix(amazonq): fix uploading file method error handling for /doc --- .../bugfix-8878216c-a256-4459-80de-8334711c8d53.json | 4 ++++ .../jetbrains/common/util/AmazonQCodeGenService.kt | 7 ++++++- .../amazonqDoc/session/PrepareDocGenerationState.kt | 3 ++- 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 .changes/next-release/bugfix-8878216c-a256-4459-80de-8334711c8d53.json diff --git a/.changes/next-release/bugfix-8878216c-a256-4459-80de-8334711c8d53.json b/.changes/next-release/bugfix-8878216c-a256-4459-80de-8334711c8d53.json new file mode 100644 index 00000000000..262b1ca5d3b --- /dev/null +++ b/.changes/next-release/bugfix-8878216c-a256-4459-80de-8334711c8d53.json @@ -0,0 +1,4 @@ +{ + "type" : "bugfix", + "description" : "Amazon Q /doc: Fix uploading file method throwing incorrect workspace too large error message" +} \ No newline at end of file diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/common/util/AmazonQCodeGenService.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/common/util/AmazonQCodeGenService.kt index afe9da01b21..d71d6fc6334 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/common/util/AmazonQCodeGenService.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/common/util/AmazonQCodeGenService.kt @@ -20,6 +20,7 @@ import software.aws.toolkits.core.utils.getLogger import software.aws.toolkits.core.utils.warn import software.aws.toolkits.jetbrains.common.clients.AmazonQCodeGenerateClient import software.aws.toolkits.jetbrains.common.session.Intent +import software.aws.toolkits.jetbrains.services.amazonqDoc.docServiceError import software.aws.toolkits.jetbrains.services.amazonqDoc.session.DocGenerationStreamResult import software.aws.toolkits.jetbrains.services.amazonqDoc.session.ExportDocTaskAssistResultArchiveStreamResult import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.CodeIterationLimitException @@ -31,6 +32,7 @@ import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.FeatureDevOper import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.MonthlyConversationLimitError import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.ZipFileCorruptedException import software.aws.toolkits.jetbrains.services.cwc.controller.chat.telemetry.getStartUrl +import software.aws.toolkits.resources.message import software.aws.toolkits.telemetry.AmazonqTelemetry import software.aws.toolkits.telemetry.MetricResult @@ -82,7 +84,7 @@ class AmazonQCodeGenService(val proxyClient: AmazonQCodeGenerateClient, val proj } } - fun createUploadUrl(conversationId: String, contentChecksumSha256: String, contentLength: Long, uploadId: String): + fun createUploadUrl(conversationId: String, contentChecksumSha256: String, contentLength: Long, uploadId: String, featureName: String? = null): CreateUploadUrlResponse { try { logger.debug { "Executing createUploadUrl with conversationId $conversationId" } @@ -104,6 +106,9 @@ class AmazonQCodeGenService(val proxyClient: AmazonQCodeGenerateClient, val proj logger.warn(e) { "Create UploadUrl failed for request: ${e.requestId()}" } if (e is ValidationException && e.message?.contains("Invalid contentLength") == true) { + if (featureName?.equals("docGeneration") == true) { + throw docServiceError(message("amazonqDoc.exception.content_length_error")) + } throw ContentLengthException(operation = FeatureDevOperation.CreateUploadUrl.toString(), desc = null, cause = e.cause) } } diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqDoc/session/PrepareDocGenerationState.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqDoc/session/PrepareDocGenerationState.kt index 497126bb12d..460cee802f9 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqDoc/session/PrepareDocGenerationState.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqDoc/session/PrepareDocGenerationState.kt @@ -48,7 +48,8 @@ class PrepareDocGenerationState( config.conversationId, zipFileChecksum, zipFileLength, - uploadId + uploadId, + "docGeneration" ) uploadArtifactToS3(