From d40e9a157b6e59275d580f59cdecfffe914598d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89mile=20R=C3=A9?= Date: Tue, 12 May 2026 18:25:44 +0400 Subject: [PATCH] Handle membership not found MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Émile Ré --- pkg/iam/organization_service.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/pkg/iam/organization_service.go b/pkg/iam/organization_service.go index f9afcfc12..eb2b565e2 100644 --- a/pkg/iam/organization_service.go +++ b/pkg/iam/organization_service.go @@ -1021,11 +1021,25 @@ func (s *OrganizationService) UpdateUser(ctx context.Context, req *UpdateUserReq } membership := &coredata.Membership{} + var webhookPayload *webhooktypes.User + if err := membership.LoadByIdentityIDAndOrganizationID(ctx, conn, scope, profile.IdentityID, profile.OrganizationID); err != nil { - return fmt.Errorf("cannot load membership: %w", err) + if !errors.Is(err, coredata.ErrResourceNotFound) { + return fmt.Errorf("cannot load membership: %w", err) + } + + webhookPayload = webhooktypes.NewUser(profile, nil) + } else { + webhookPayload = webhooktypes.NewUser(profile, membership) } - if err := webhook.InsertData(ctx, conn, scope, profile.OrganizationID, coredata.WebhookEventTypeUserUpdated, webhooktypes.NewUser(profile, membership)); err != nil { + if err := webhook.InsertData(ctx, + conn, + scope, + profile.OrganizationID, + coredata.WebhookEventTypeUserUpdated, + webhookPayload, + ); err != nil { return fmt.Errorf("cannot insert webhook event: %w", err) }