ZITADELZZITADEL
Powered by
ArnauA
ZITADEL•4mo ago•
21 replies
Arnau

Login V2: gRPC call to zitadel.user.v2.UserService.ListUsers returns 403, organization scoped

🏬Self-hosted🔗OIDC🪲Bugs❓Question✅Solved
Use-case: Multi tenancy PaaS
Environment: Self hosting
Version: 4.5.0 and 4.6.2 in beta envs, 3.3.0 in production (using old zitadel/typescript repo)

Hello everyone,

Not sure if it's reproducible as well for some of you, but gRPC call to zitadel.user.v2.UserService.ListUsers endpoint returns a 403 permission_denied error to the Login V2 application when
the URL contains a pre-defined
organization
organization
query param resolved from scopes from the auth request, AND most strangely only for one same user email, even after deleteing + recreating the user.

 Error [ConnectError]: [permission_denied] HTTP 403
    at <unknown> (.next/server/chunks/5397.js:10:108067)
    at v (.next/server/chunks/5397.js:10:108544)
    at next (.next/server/chunks/5397.js:10:144756)
    at async Object.unary (.next/server/chunks/5397.js:10:144015)
    at async Object.i [as listUsers] (.next/server/chunks/5397.js:1:1763)
    at async aw (.next/server/chunks/8101.js:1:108130)
    at async s (.next/server/chunks/8101.js:1:613) {
  rawMessage: 'HTTP 403',
  code: 7,
  metadata: Headers {
    server: 'awselb/2.0',
    date: 'Wed, 29 Oct 2025 08:21:33 GMT',
    'content-type': 'application/grpc',
    'content-length': '0',
    'grpc-status': '7',
    'grpc-message': 'permission denied'
  },
  details: [],
  cause: undefined,
  digest: '2436281361'
}
 Error [ConnectError]: [permission_denied] HTTP 403
    at <unknown> (.next/server/chunks/5397.js:10:108067)
    at v (.next/server/chunks/5397.js:10:108544)
    at next (.next/server/chunks/5397.js:10:144756)
    at async Object.unary (.next/server/chunks/5397.js:10:144015)
    at async Object.i [as listUsers] (.next/server/chunks/5397.js:1:1763)
    at async aw (.next/server/chunks/8101.js:1:108130)
    at async s (.next/server/chunks/8101.js:1:613) {
  rawMessage: 'HTTP 403',
  code: 7,
  metadata: Headers {
    server: 'awselb/2.0',
    date: 'Wed, 29 Oct 2025 08:21:33 GMT',
    'content-type': 'application/grpc',
    'content-length': '0',
    'grpc-status': '7',
    'grpc-message': 'permission denied'
  },
  details: [],
  cause: undefined,
  digest: '2436281361'
}


The IAM_LOGIN_CLIENT manager role is granted to the Service Account used by Login V2.

Also tried adding IAM_OWNER, sadly with the same result.

Strangely, the REST endpoint /v2/users returns the expected search result.

I opened this issue for it:
https://github.com/zitadel/zitadel/issues/10995
GitHub
[Bug]: Login V2: gRPC call to zitadel.user.v2.UserService.ListUsers...
Preflight Checklist I could not find a solution in the documentation, the existing issues or discussions I have joined the ZITADEL chat Environment Self-hosted Version 3.3.0 (with custom zitadel/ty...
[Bug]: Login V2: gRPC call to zitadel.user.v2.UserService.ListUsers...
ZITADEL banner
ZITADELJoin
ZITADEL - Identity infrastructure, simplified for you.
4,374Members
Resources
Recent Announcements

Similar Threads

Was this page helpful?

Similar Threads

Zitadel Login V2 wrong redirect URI
ConstantinCConstantin / questions-help-bugs
3w ago
Zitadel uninvited user can login to app?
Endre | Blackr4tEEndre | Blackr4t / questions-help-bugs
14mo ago