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
- Auth Error
"use client"; import { useEffect } from "react"; import { getSessionCookie } from "@/actions/auth"; import { createBrowserSessionClient } from "@/lib/appwrite-...
- Prevent modifying specific attributes
How do I prevent user to only to be able to modify some of the attributes. Document level security gives full access to update whole document, what are the wor...
- Bypass Error When Creating Account With ...
Suppose user first uses email/pass for log in using xyz@gmail.com, few month later on decides to use google oauth2 with same xyz@gmail.com (or in reverse orde...
