Reset Password
If SMTP is configured, use n8n’s Forgot password option on the login page.
If SMTP is not configured and you are locked out, you can reset the password through database access. n8n stores user passwords as bcrypt hashes.
-
Generate a bcrypt hash for a temporary password.
If you have
htpasswdinstalled locally:htpasswd -bnBC 10 "" "your-new-password" | cut -d: -f2You can also use bcrypt-generator.com. Set Rounds (Cost Factor) to
10. - Enable database access for the pod and open Adminer.
- In Adminer, select the n8n database and open SQL command.
- Run the following SQL, replacing the email address and bcrypt hash:
UPDATE "user"
SET "password" = 'YOUR_BCRYPT_HASH'
WHERE "email" = 'you@example.com';
- Log in with the temporary password and change it immediately in n8n.
For future password resets, configure SMTP for n8n. See our email FAQ and the official n8n user management docs.
Prune old executions automatically
Execution history grows over time and can eventually slow n8n down or cause problems when it updates. To keep it in check, enable automatic pruning. These are available under Env Vars in your pod settings:
EXECUTIONS_DATA_PRUNE— set totrueto automatically delete old executions.EXECUTIONS_DATA_MAX_AGE— how long (in hours) to keep finished executions. For example,186keeps roughly a week of history.
With pruning enabled, n8n removes old execution records on its own, keeping the database small and the instance responsive.
Note: pruning only removes finished executions. It keeps history from building up over time, but it won’t clear a backlog that has already accumulated — use Clearing the backlog above for that.
High CPU From a Large Execution Backlog
A backlog of stored executions usually builds up when an active workflow triggers far more runs than n8n can handle — a short-interval schedule or polling trigger, or a webhook being called repeatedly. The runs get stuck in the database and n8n keeps trying to process them.
Symptoms
n8n needs a long time to start and you may notice:
- CPU usage stays high, often pinned at the pod’s limit.
- The logs repeat
Execution is already being resumed by another processmany times. - The logs may also show
timeout exceeded when trying to connecterrors, even though your database is running fine. - The instance feels slow, and the number of stored executions does not go down on its own.
Confirm it in the database
Connect to your pod’s PostgreSQL database (for example with Adminer) and run:
SELECT status, count(*) FROM execution_entity GROUP BY status ORDER BY 2 DESC;
If you see a very large number (tens of thousands or more) of executions in the new status, that is the backlog causing the problem. For example:
status count
new 100000
canceled 20000
crashed 13000
success 171
error 138
Resolve it
Clear the stored executions, then restart your pod:
TRUNCATE execution_entity RESTART IDENTITY CASCADE;
After running this, restart the n8n pod from your dashboard. With the backlog gone, CPU usage should return to normal and the repeated log messages should stop.
What is deleted: only your execution history — the logs of past, failed, and pending workflow runs. Your workflows and credentials are not affected; they are stored separately and remain intact. The pending runs that are removed were stuck and would not have completed anyway.