top of page

If you only do three things

  1. Run/api/v1/diagnose-claimsfirst — it confirms whether the problem is really the missing group claim before you change anything.

  2. Use a Post Authentication Lambda to write groups intocustom:groups, not a Pre-token generation trigger — only custom attributes are returned by the userinfo endpoint that Qlik reads.

  3. Update the groups claim mapping in the Qlik IdP fromcognito:groupstocustom:groupsafter deploying the Lambda — or groups will still not appear even when the attribute is populated.

Step 1 — Add a custom:groups attribute to your User Pool

In the AWS Console, go to Cognito → User Pools → {your pool} → Sign-in experience → User attributes → Custom attributes → Add custom attribute.

Set the attribute name to groups (Cognito will prefix it automatically as custom:groups), data type String, Mutable: Yes, Max length: 2048.


⚠ Custom attributes are permanent in Cognito. You cannot delete them after creation.

Step 2 — Grant your Qlik Cloud app client Read access to custom:groups

Go to App clients → {your Qlik Cloud app client} → Attribute read and write permissions → custom:groups → enable Read.

Step 3 — Create the Lambda

Runtime: Node.js 22.x. No extra dependencies — the AWS SDK is included in the runtime.

JavaScript (Node.js 22.x)


import { 

CognitoIdentityProviderClient, 

AdminListGroupsForUserCommand, 

AdminUpdateUserAttributesCommand 

} from "@aws-sdk/client-cognito-identity-provider";


const client = new CognitoIdentityProviderClient({ region: process.env.AWS_REGION 

});


export const handler = async (event) => { 

const { userPoolId, userName } = event;


const groupsResponse = await client.send( 

new AdminListGroupsForUserCommand({ UserPoolId: userPoolId, Username: userName }) 

);

const groups = groupsResponse.Groups .map((g) => g.GroupName).join(",");


await client.send( 

new AdminUpdateUserAttributesCommand({ 

UserPoolId: userPoolId, 

Username: userName,

 UserAttributes: [{ Name: "custom:groups", Value: groups }],

 })

 );

return event; // Post Authentication triggers must return the event unchanged

};

Step 4 — IAM permissions for the Lambda role

Add an inline policy to the Lambda execution role, scoped to your specific user pool ARN.

JSON (IAM Policy)

"Version": "2012-10-17", 

"Statement": [{ 

"Effect": "Allow", 

"Action": [

 "cognito-idp:AdminListGroupsForUser", 

"cognito-idp:AdminUpdateUserAttributes"

 ], 

"Resource": "arn:aws:cognito-idp:{REGION}:{ACCOUNT_ID}:userpool/{USER_POOL_ID}" }] 

}

Step 5 — Register as a Post Authentication trigger

Go to User Pool → Extensions → Lambda triggers → Authentication → Post authentication → Add Lambda trigger.


⚠ If you have a Pre-token generation trigger from an earlier attempt to inject groups into the ID token, remove it. It won't help and may cause side effects.

Step 6 — Update the Qlik Cloud IdP

Go to Administration → Identity Providers → {your Cognito IdP} → Edit → Claims mapping.

Change the groups claim from cognito:groups to custom:groups. Qlik Cloud parses the comma-separated value automatically.

Verify it worked

Log out, log back in, then call /api/v1/diagnose-claims again. You should now see custom:groups populated under claimsFromIdp and the groups listed under mappedClaims.groups.

Groups will also appear in Administration → Groups after the first login.


For additional troubleshooting, read the full article on Qlik Community: Qlik Cloud + AWS Cognito: why cognito:groups silen... - Qlik Community - 2548779

The problem

You have configured AWS Cognito as a Generic OIDC provider in Qlik Cloud. Your users can log in, but they have no groups — even though everything looks correctly set up. No error is shown anywhere.

The root cause: Qlik Cloud reads user claims from Cognito's userinfo endpoint, and that endpoint does not return cognito:groups. The claim exists in the ID token, but Qlik never reads the ID token. The groups are silently dropped on every login.

You can confirm this by calling GET https://{your-tenant}/api/v1/diagnose-claims after logging in — you will see "claimSource": "idp-userinfo" with no group data at all.

Qlik Cloud + AWS Cognito: why cognito:groups silently fails and how to fix it

A step-by-step fix for the silent group claim failure when using AWS Cognito as a Generic OIDC provider in Qlik Cloud.

By Ana Silva, Senior Systems Engineer and Administrator at IPC Global

May 8, 2026

6 min read

Qlik Tips

Related Insights

Qlik Tips

6 min read

Qlik Cloud + AWS Cognito: why cognito:groups silently fails and how to fix it

A step-by-step fix for the silent group claim failure when using AWS Cognito as a Generic OIDC provider in Qlik Cloud.

By Ana Silva, Senior Systems Engineer and Administrator at IPC Global

Looking for guidance specific to your organization?

Our team can help you implement these strategies in your organization.

bottom of page