diff --git a/src/modules/platform-api/platform-api.controller.ts b/src/modules/platform-api/platform-api.controller.ts index 0c3cd55..16d27b3 100644 --- a/src/modules/platform-api/platform-api.controller.ts +++ b/src/modules/platform-api/platform-api.controller.ts @@ -807,7 +807,6 @@ export class PlatformApiController { @Post('pipelines/:pipelineId/pipeline_run/:runId/cancel') @ApiOperation({ summary: 'Cancel a running pipeline run' }) @RequireAllPermissions(PERMISSIONS_GROUPS.PIPELINE.permissions.UPDATE) - @UseGuards(PipelineExecutionGuard) async cancelPipelineRun( @Param('pipelineId') pipelineId: string, @Param('runId') runId: string, @@ -816,6 +815,16 @@ export class PlatformApiController { const normalizedPipelineId = this.normalizePipelineId(pipelineId); const normalizedRunId = this.normalizePipelineId(runId); + const status = await this.platformApiService.proxy( + 'GET', + `/pipeline/${normalizedPipelineId}/pipeline_run`, + user, + ); + + if (status.length === 1) { + throw new BadRequestException('The first pipeline cannot be canceled'); + } + return this.platformApiService.proxy( 'POST', `/pipeline/${normalizedPipelineId}/pipeline_run/${normalizedRunId}/cancel`,