Skip to content

Conversation

Piskoo
Copy link
Collaborator

@Piskoo Piskoo commented Jun 12, 2025

Fix for #2088

Signed-off-by: Sylwester Piskozub <sylwesterpiskozub@gmail.com>
msg = "authentication required, please run \"chainloop auth login\""
case v1.IsUserNotMemberOfOrgErrorNotInOrg(err), v1.IsUserWithNoMembershipErrorNotInOrg(err):
msg = "the organization you are trying to access does not exist, please run \"chainloop auth login\""
msg = "you are not part of any organization, please run \"chainloop organization create --name ORG_NAME\" to create one"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for the PR!

I think we might need to split the switch into the two cases, v1.IsUserNotMemberOfOrgErrorNotInOrg(err), might not mean that tit doesn't have any org but instead that it's not part of this specific org.

Let me review the current custom error throwing, thanks!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, thanks again for providing a PR but I although I think it fixes the issue, it adds a regression where we will tell users that they do not have an organization when they just don't have access to it.

The following change, indeed fixes the issue

diff --git a/app/cli/main.go b/app/cli/main.go
index ff807fce..ca1b9540 100644
--- a/app/cli/main.go
+++ b/app/cli/main.go
@@ -89,8 +89,10 @@ func errorInfo(err error, logger zerolog.Logger) (string, int) {
                msg = "your authentication token has expired, please run chainloop auth login again"
        case isWrappedErr(st, jwtMiddleware.ErrMissingJwtToken):
                msg = "authentication required, please run \"chainloop auth login\""
-       case v1.IsUserNotMemberOfOrgErrorNotInOrg(err), v1.IsUserWithNoMembershipErrorNotInOrg(err):
-               msg = "the organization you are trying to access does not exist, please run \"chainloop auth login\""
+       case v1.IsUserNotMemberOfOrgErrorNotInOrg(err):
+               msg = "the organization you are trying to access does not exist or you are not part of it, please run \"chainloop auth login\""
+       case v1.IsUserWithNoMembershipErrorNotInOrg(err):
+               msg = "you are not part of any organization, please run \"chainloop organization create --name ORG_NAME\" to create one"
        case errors.As(err, &cmd.GracefulError{}):
                // Graceful recovery if the flag is set and the received error is marked as recoverable
                if cmd.GracefulExit {

what I do is to make sure the error handling is split between the two cases

a) when the user doesn't have any organization
b) when the user doesn't have access to the provided organization

The original issue #2088 was about making sure that during the attestation process, we show a) not b), and this change fixes it.

Feel free to apply those changes in your branch and let me know.

Thanks!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the feedback! You're right, that was causing a misleading error. I've applied your suggested changes to handle both cases separately.

Copy link
Member

@migmartri migmartri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See my inline comment, thanks!

Signed-off-by: Sylwester Piskozub <sylwesterpiskozub@gmail.com>
Copy link
Member

@migmartri migmartri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@migmartri migmartri merged commit c435a70 into chainloop-dev:main Jun 16, 2025
13 checks passed
@migmartri
Copy link
Member

Congratulations for your first contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants