Hi Everyone,
I have following user collection which where I am not using authentication in payload cms, rather I have a SvelteKit app where i'm handling auth.
import { CollectionConfig, Field } from 'payload/types';
import {isAdmin, isAdminOrSelf} from '../access/Access';
const Users: CollectionConfig = {
slug: 'users',
admin: {
useAsTitle: 'mobile',
},
access: {
read: isAdminOrSelf('id'),
create: isAdminOrSelf('id'),
update: isAdminOrSelf('id'),
delete: isAdmin,
},
fields: [
{
name: 'mobile',
type: 'text',
required: true,
unique: true,
label: 'Mobile',
},
{
name: 'first_name',
type: 'text',
label: 'First Name',
},
{
name: 'last_name',
type: 'text',
label: 'Last Name',
},
{
name: 'membership',
type: 'select',
options: [
{ label: 'Premium', value: 'premium' },
{ label: 'Basic', value: 'basic' },
],
defaultValue: 'basic',
},
]
};
export default Users;
But I am getting following error while creating a new record from payload cms admin
ERROR (payload): ValidationError: The following field is invalid: email
at create (/Users/anil/Projects/RN/vqard-be/node_modules/payload/src/collections/operations/create.ts:215:11)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at createHandler (/Users/anil/Projects/RN/vqard-be/node_modules/payload/src/collections/requestHandlers/create.ts:19:17)
Any pointers will be very helpful. TIA
For authentication, I am using a different collection called AdminUser
After digging a little I found that error is little misleading. This error is being thrown for duplicate email key from mongoose. Somehow mongoose is still validating for duplicate email which is basically null. So I didn’t had any problem for first user
Check for a email index in your Users collection and delete it. Payload creates a index when the project is bootstraped
— nailed it, this is the issue for sure
we don't ever delete indexes for you
so there's still a
unique
index in place
Star
Discord
online
Get dedicated engineering support directly from the Payload team.