{"record":{"id":"725b4d0f82fbe0d4","repo":"payloadcms/payload","slug":"sanitizedconfig-admin-user-is-not-a-valid-admi","errorCode":null,"errorMessage":"${sanitizedConfig.admin!.user} is not a valid admin user collection","messagePattern":"(.+?) is not a valid admin user collection","errorType":"http","errorClass":"InvalidConfiguration","httpStatus":500,"severity":"critical","filePath":"packages/payload/src/config/sanitize.ts","lineNumber":77,"sourceCode":"  }\n  // add default user collection if none provided\n  if (!sanitizedConfig?.admin?.user) {\n    const firstCollectionWithAuth = sanitizedConfig.collections!.find(({ auth }) => Boolean(auth))\n\n    if (firstCollectionWithAuth) {\n      sanitizedConfig.admin!.user = firstCollectionWithAuth.slug\n    } else {\n      sanitizedConfig.admin!.user = defaultUserCollection.slug\n      sanitizedConfig.collections!.push(defaultUserCollection)\n    }\n  }\n\n  const userCollection = sanitizedConfig.collections!.find(\n    ({ slug }) => slug === sanitizedConfig.admin!.user,\n  )\n\n  if (!userCollection || !userCollection.auth) {\n    throw new InvalidConfiguration(\n      `${sanitizedConfig.admin!.user} is not a valid admin user collection`,\n    )\n  }\n\n  if (sanitizedConfig?.admin?.timezones) {\n    if (typeof configToSanitize?.admin?.timezones?.supportedTimezones === 'function') {\n      sanitizedConfig.admin.timezones.supportedTimezones =\n        configToSanitize.admin.timezones.supportedTimezones({ defaultTimezones })\n    }\n\n    if (!sanitizedConfig?.admin?.timezones?.supportedTimezones) {\n      sanitizedConfig.admin.timezones.supportedTimezones = defaultTimezones\n    }\n  } else {\n    sanitizedConfig.admin!.timezones = {\n      supportedTimezones: defaultTimezones,\n    }\n  }","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/payloadcms/payload/blob/00c58b35c0ed348ddc22daabf467b139727214fd/packages/payload/src/config/sanitize.ts#L59-L95","documentation":"Thrown at sanitize time when `admin.user` (the collection slug used for admin authentication) does not match any collection, or the matched collection lacks an `auth` configuration. Payload requires exactly one auth-enabled collection to back the admin panel login. Sanitize auto-picks a default users collection if none is set, but if you explicitly set `admin.user` to a slug that is missing or non-auth, it fails.","triggerScenarios":"Renaming the users collection without updating `admin.user`; removing `auth: true` from the collection referenced by `admin.user`; setting `admin.user` to a typo'd slug; deleting the users collection entirely.","commonSituations":"Refactoring auth into a custom users collection (e.g. `members`) and forgetting `admin.user = 'members'`; disabling auth on the users collection for a public-only setup; a plugin that removes the default users collection.","solutions":["Set `admin.user` to the slug of a collection that has `auth: true`.","Re-add `auth: true` to the referenced collection.","If you removed all auth collections, omit `admin.user` so Payload injects a default `users` collection."],"exampleFix":"// before\nbuildConfig({ admin: { user: 'users' }, collections: [{ slug: 'members', auth: true, fields: [] }] })\n// after\nbuildConfig({ admin: { user: 'members' }, collections: [{ slug: 'members', auth: true, fields: [] }] })","handlingStrategy":"validation","validationCode":"const slug = config.admin?.user ?? 'users'\nconst col = config.collections?.find((c) => c.slug === slug)\nif (!col || !col.auth) {\n  throw new Error(`admin.user '${slug}' must reference an auth-enabled collection`)\n}","typeGuard":"function isAdminUserValid(collections: { slug: string; auth?: boolean }[], user?: string): boolean {\n  const slug = user ?? 'users'\n  return collections.some((c) => c.slug === slug && Boolean(c.auth))\n}","tryCatchPattern":null,"preventionTips":["Whenever you rename the users collection, update `admin.user` in the same change.","Keep `auth: true` on the collection referenced by `admin.user`.","If you remove all auth collections, omit `admin.user` to get the injected default."],"tags":["config","admin","auth","sanitize","buildconfig"],"backgroundTag":null,"analyzedSha":"00c58b35c0ed348ddc22daabf467b139727214fd","analyzedAt":"2026-08-12T20:45:03.758Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}