-
Notifications
You must be signed in to change notification settings - Fork 634
Closed
Labels
bugThis issue is a bug.This issue is a bug.duplicateThis issue is a duplicate.This issue is a duplicate.
Description
Checkboxes for prior research
- I've gone through Developer Guide and API reference
- I've checked AWS Forums and StackOverflow.
- I've searched for previous similar issues and didn't find any solution.
Describe the bug
CLI and JS SDK have same behavior. I have 53 users in my user pool. When I set the limit to 20, the first page contains 7 users. When I set the limit to 50, the first page contains 20 users.
Code I have -
Regression Issue
- Select this option if this issue appears to be a regression.
SDK version number
"@aws-sdk/client-cognito-identity-provider": "^3.806.0",
Which JavaScript Runtime is this issue in?
Node.js
Details of the browser/Node.js/ReactNative version
node v20.18.0
Reproduction Steps
import {
CognitoIdentityProviderClient,
ListUsersCommand,
} from "@aws-sdk/client-cognito-identity-provider";
const client = new CognitoIdentityProviderClient({
region: "us-east-1",
});
const userPoolId = "us-east-1_XmXhQUtUx";
async function listAllUsers() {
try {
let totalUsers = 0;
let paginationToken = null;
let pageCount = 0;
while (true) {
pageCount++;
const params = {
UserPoolId: userPoolId,
Limit: 20,
};
if (paginationToken) {
params.PaginationToken = paginationToken;
}
const command = new ListUsersCommand(params);
const response = await client.send(command);
const pageUserCount = response.Users?.length || 0;
totalUsers += pageUserCount;
console.log(`Page ${pageCount}: ${pageUserCount} users`);
console.log(`Has more pages: ${!!response.PaginationToken}`);
paginationToken = response.PaginationToken;
if (!paginationToken) {
break;
}
}
console.log(`Total pages: ${pageCount}`);
console.log(`Total users: ${totalUsers}`);
} catch (error) {
console.error("Error:", error.message);
}
}
listAllUsers();
result -
Page 1: 7 users
Has more pages: true
Page 2: 9 users
Has more pages: true
Page 3: 9 users
Has more pages: true
Page 4: 7 users
Has more pages: true
Page 5: 4 users
Has more pages: true
Page 6: 9 users
Has more pages: true
Page 7: 8 users
Has more pages: false
Total pages: 7
Total users: 53
If I change the limit
to 50, then I got the result -
Page 1: 20 users
Has more pages: true
Page 2: 16 users
Has more pages: true
Page 3: 17 users
Has more pages: false
Total pages: 3
Total users: 53
In CLI , it also returns 7 items when limit =20 -
~ $ aws cognito-idp list-users --user-pool-id us-east-1_XmXhQUtUx --query "Users[*].Attributes[?Name=='email'].Value" --limit 20
[
[
"[email protected]"
],
[
"[email protected]"
],
[
"[email protected]"
],
[
"[email protected]"
],
[
"[email protected]"
],
[
"[email protected]"
],
[
"[email protected]"
]
]
(END)
Observed Behavior
The returned users amount is not respecting the limit
Expected Behavior
The returned users amount should respect the limit
Possible Solution
Additional Information/Context
No response
Metadata
Metadata
Assignees
Labels
bugThis issue is a bug.This issue is a bug.duplicateThis issue is a duplicate.This issue is a duplicate.