Skip to content

Commit

Permalink
fix(amazonq): fix uploading file method error handling for /doc (#5400)
Browse files Browse the repository at this point in the history
  • Loading branch information
KevinDing1 authored Feb 21, 2025
1 parent 8de1315 commit 7cc09f3
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"type" : "bugfix",
"description" : "Amazon Q /doc: Fix uploading file method throwing incorrect workspace too large error message"
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

Expand Down Expand Up @@ -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" }
Expand All @@ -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)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ class PrepareDocGenerationState(
config.conversationId,
zipFileChecksum,
zipFileLength,
uploadId
uploadId,
"docGeneration"
)

uploadArtifactToS3(
Expand Down

0 comments on commit 7cc09f3

Please sign in to comment.