diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/FeatureDevExceptions.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/FeatureDevExceptions.kt index 74021b4188e..add731461c0 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/FeatureDevExceptions.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/FeatureDevExceptions.kt @@ -82,6 +82,9 @@ class GuardrailsException(operation: String, desc: String?, cause: Throwable? = class PromptRefusalException(operation: String, desc: String?, cause: Throwable? = null) : ClientException(message("amazonqFeatureDev.exception.prompt_refusal"), operation, desc, cause) +class FileCreationFailedException(operation: String, desc: String?, cause: Throwable? = null) : + ServiceException(message("amazonqFeatureDev.exception.failed_generation"), operation, desc, cause) + class ThrottlingException(operation: String, desc: String?, cause: Throwable? = null) : ClientException(message("amazonqFeatureDev.exception.throttling"), operation, desc, cause) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/session/CodeGenerationState.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/session/CodeGenerationState.kt index 5448a51b55e..9647ca9e359 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/session/CodeGenerationState.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/session/CodeGenerationState.kt @@ -13,6 +13,7 @@ import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.EmptyPatchExce import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.FEATURE_NAME import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.FeatureDevException import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.FeatureDevOperation +import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.FileCreationFailedException import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.GuardrailsException import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.NoChangeRequiredException import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.PromptRefusalException @@ -261,6 +262,10 @@ private suspend fun CodeGenerationState.generateCode( codeGenerationResultState.codeGenerationStatusDetail()?.contains( "EmptyPatch", ), + -> throw FileCreationFailedException(operation = FeatureDevOperation.GenerateCode.toString(), desc = "File creation failed") + codeGenerationResultState.codeGenerationStatusDetail()?.contains( + "FileCreationFailed", + ), -> { if (codeGenerationResultState.codeGenerationStatusDetail().contains("NO_CHANGE_REQUIRED")) { throw NoChangeRequiredException(operation = FeatureDevOperation.GenerateCode.toString(), desc = "No change required")