-
Notifications
You must be signed in to change notification settings - Fork 18
Description
The dkg-cli agent-setup command fails when an admin user already exists in the database, preventing successful completion of the agent setup
process.
Steps to Reproduce
- Run
dkg-cli agent-setupsuccessfully (creating the default admin user) - Attempt to run
dkg-cli agent-setupagain (e.g., to reconfigure settings) - Setup fails with error related to LLM provider being undefined
Expected Behavior
According to the official documentation, the admin user
([email protected]) should be created during setup. The setup script should handle the scenario where an admin user already exists by either:
- Skipping user creation if the user already exists
- Providing an option to update existing credentials
- Showing a clear message that the user exists and continuing with setup
Actual Behavior
The setup script attempts to create an admin user unconditionally. When a user with [email protected] already exists, the script encounters an
error and fails to complete.
Root Cause
Looking at apps/agent/src/server/helpers.ts:90-98, the createUser function throws an error if a user with the provided email already exists:
await db
.select()
.from(users)
.where(eq(users.email, email))
.then((r) => {
if (r.length > 0) {
throw new Error(`User with email ${email} already exists.`);
}
});
The setup script at apps/agent/src/server/scripts/setup.ts:178-186 calls createUser without checking if the admin user already exists.
Suggested Fix
Modify the setup script to check if the admin user exists before attempting creation:
// Check if admin user already exists
const existingAdmin = await db
.select()
.from(users)
.where(eq(users.email, "[email protected]"))
.then((r) => r[0]);
if (existingAdmin) {
console.log("Admin user already exists, skipping creation...");
console.log(`Email: [email protected]`);
} else {
console.log("Creating admin user...");
const userId = await createUser(
db,
{
email: "[email protected]",
password: "admin123",
},
["mcp", "llm", "blob", "scope123"],
);
// ... rest of the output
}Environment
- OS: macOS (Darwin 24.6.0)
- Node version: [your version]
- DKG Node: Latest from main branch
Workaround
Manually delete the database file and .env files before running dkg-cli agent-setup again.