From 09f131087cc9deedf8333c94e53352810e711c5a Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 27 Jul 2026 13:06:44 +0000 Subject: [PATCH] Map cancel campaign terminal errors to invalid Return GraphQL invalid when cancel hits completed or cancelled campaign status sentinels from the service layer. Signed-off-by: Cursor Agent Co-authored-by: Bryan FRIMIN --- pkg/server/api/console/v1/access_review_campaign_resolvers.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/server/api/console/v1/access_review_campaign_resolvers.go b/pkg/server/api/console/v1/access_review_campaign_resolvers.go index 4d8df89b7..7578d175b 100644 --- a/pkg/server/api/console/v1/access_review_campaign_resolvers.go +++ b/pkg/server/api/console/v1/access_review_campaign_resolvers.go @@ -861,6 +861,10 @@ func (r *mutationResolver) CancelAccessReviewCampaign(ctx context.Context, input campaign, err := r.accessReview.CancelCampaign(ctx, scope, input.AccessReviewCampaignID) if err != nil { + if errorx.AnyOf(err, accessreview.ErrCampaignCompleted, accessreview.ErrCampaignCancelled) { + return nil, gqlutils.Invalid(ctx, err) + } + r.logger.ErrorCtx(ctx, "cannot cancel access review campaign", log.Error(err)) return nil, gqlutils.Internal(ctx)