Budibase/budibase · error
Max limit for upload is 1000 users. Please reduce file size
Error message
Max limit for upload is 1000 users. Please reduce file size and try again.
What it means
bulkCreate enforces MAX_USERS_UPLOAD_LIMIT (1000) per call when the deployment is not self-hosted. Exceeding it throws this error and nothing is created. Self-hosted installs are exempt from the cap.
Source
Thrown at packages/worker/src/api/controllers/global/users.ts:191
ctx.body = { message: "SSO support added." }
} catch (err: any) {
ctx.throw(err.status || 400, err?.message || err)
}
}
const bulkDelete = async (
users: Array<UserIdentifier>,
currentUserId: string
) => {
if (users.find(u => u.userId === currentUserId)) {
throw new Error("Unable to delete self.")
}
return await userSdk.db.bulkDelete(users)
}
const bulkCreate = async (users: User[], groupIds: string[]) => {
if (!env.SELF_HOSTED && users.length > MAX_USERS_UPLOAD_LIMIT) {
throw new Error(
"Max limit for upload is 1000 users. Please reduce file size and try again."
)
}
return await userSdk.db.bulkCreate(users, groupIds)
}
export const bulkUpdate = async (
ctx: Ctx<BulkUserRequest, BulkUserResponse>
) => {
const currentUserId = ctx.user._id
const input = ctx.request.body
let created, deleted
try {
if (input.create) {
const tenantId = context.getTenantId()
const users: User[] = input.create.users.map(user => ({
...user,
tenantId,View on GitHub (pinned to a81a902e9a)
Solutions
- Split the user list into chunks of 1000 or fewer and make multiple bulkCreate calls
- Paginate large CSV uploads in the client before submitting
- For very large imports, use a self-hosted deployment or contact support to raise limits
- Check users.length before calling and surface a friendly message to the user
Example fix
// before
await userSdk.db.bulkCreate(allUsers, groupIds)
// after
const MAX = 1000
for (let i = 0; i < allUsers.length; i += MAX) {
await userSdk.db.bulkCreate(allUsers.slice(i, i + MAX), groupIds)
} Defensive patterns
Strategy: validation
Validate before calling
const MAX = 1000
if (users.length > MAX) {
throw new Error(`Chunk users into batches of ${MAX} before upload`)
} Type guard
null
Try / catch
try {
await api.bulkCreate(users, groupIds)
} catch (e) {
if (e.message.includes("Max limit for upload")) {
// split into chunks of 1000 and retry sequentially
}
} Prevention
- Always chunk large user imports into batches of ≤1000
- Paginate CSV parsing before submitting
- Check deployment type: self-hosted has no such cap
When it happens
Trigger: Calling the bulk user create endpoint (or bulk upload/bulkUpdate path) with more than 1000 users in one request on a cloud (non-SELF_HOSTED) environment.
Common situations: Uploading a large CSV of employees in one go; migrating users from another system with a single request; scripts that don't paginate user creation.
Related errors
- Email is required
- No user ID provided for getting
- Project package contains too many files.
- Unable to delete self.
- Error getting status
AI-assisted analysis of Budibase/budibase@a81a902e9a (2026-08-29).
Data as JSON: /api/errors/0279767ebf1a3ba2.
Report an issue: GitHub.