AppwriteException: Invalid document structure: Missing required attribute "userId"
- 0
- Databases
- Accounts
- Web
- Users

I am getting this error at the line console.log("Error while creating a user in 'user' database, saveUserToDB: ", error); console.log(name, email, username, userId); prints two times, first time, it is printing the value of userId as expected but at the second time that prints undefined. But when I checked my collection, the records are getting created then why this error?
auth.js import { ID } from "appwrite"; import { account, avatars } from "./config"; import { saveUserToDB } from "./db";
export const createAccount = async ({ email, password, name, username }) => { try { const userAccount = await account.create(ID.unique(), email, password, name);
if (userAccount) {
console.log(userAccount.$id);
const avatarUrl = avatars.getInitials(name);
await saveUserToDB({ name: name, email: email, username: username, userId: userAccount.$id, imageUrl: avatarUrl });
return login({ email, password });
} else {
return userAccount;
}
} catch (error) {
throw error;
}
}
export const login = async ({ email, password }) => { try { const session = await account.createEmailSession(email, password); if (session) { return session } else { throw new Error("Failed to create a session"); } } catch (error) { throw error; } }
export const getCurrentUser = async () => { try { const currentUser = await account.getprefs(); return currentUser; } catch (error) { console.log("Appwrite error on getCurrentUser: ", error); } return null; }
export const logout = async () => { try { return await account.deleteSessions(); } catch (error) { console.log("Appwrite Service error on userLogout: ", error); } }

Another file db.js import { client, databases, storage, appwriteConfig } from "./config"; import { ID } from "appwrite";
export const saveUserToDB = async ({ name, email, username, userId, imageUrl }) => { try { console.log(name, email, username, userId); return await databases.createDocument( appwriteConfig.databaseId, appwriteConfig.userCollectionId, ID.unique(), { name, email, username, userId, imageUrl } ); } catch (error) { console.log("Error while creating a user in 'user' database, saveUserToDB: ", error); } }
Recommended threads
- Upgrading Appwrite 1.7.4 → 1.8.x: What H...
I'm currently running a self-hosted Appwrite v1.7.4 instance that still uses the old Collections/Documents database model. I noticed that starting from v1.8.x,...
- File tokens regenerate each page reload
Hello, on appwrite 1.7.4, when I create a file token via the API Tokens(appwriteAdminClient)#createFileToken I get a secret, then when I check in the console t...
- CSV Import Shows Success but Data Not Ap...
I tried importing a CSV file into my PRODUCTS collection. The dashboard shows the message “Import to PRODUCTS completed successfully,” but no data appears in th...
