N8n login fails with "column User.role does not exist" after deployment on Zeabur

Hi everyone,
I deployed n8n on Zeabur with a PostgreSQL database.
Current version:
n8n 1.82.3
Problem:
I cannot log in to the n8n UI.
Error message shown in the UI:
column User.role does not exist
Runtime logs also show migration related errors such as:
Cannot read properties of undefined (reading ‘removeAllQueuedWorkflowActivations’)
The last migration reported was:
CreateChatHubToolsTable1770000000000
My setup:

  • n8n service on Zeabur
  • PostgreSQL service on Zeabur
  • workflows stored in PostgreSQL
    I have not modified the container or database manually because I want to preserve the current state for troubleshooting.
    Has anyone encountered this issue before?
    Could this be caused by a failed migration?
    Any advice would be appreciated.
    N8N_RELEASE_DATE=$(date -u +“%Y-%m-%dT%H:%M:%SZ”)

Describe the problem/error/question

What is the error message (if any)?

Please share your workflow

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:
1 Like

Hi @ZHE_HAO_WU Welcome!
First of all consider removing that N8N_RELEASE_DATE env variable as that literal string value could be causing the crash, and then restart your container and let me know if the issue persists so that we can move further with updating your instance or reinstalling it, although i recommend using a reliable hosting provider like Google, AWS & Hostinger for n8n but if you want this let’s stick with this.

This looks like an incomplete database migration rather than just an env variable issue. The “column User.role does not exist” error means the schema migration for user roles didn’t fully complete — this often happens when n8n is updated mid-run or if the container restarted during migration. You can check the migrations table in your Postgres DB to see which migrations completed successfully. If the migration is listed as done but the column is still missing, the safest fix is backing up the DB, dropping and recreating it clean, then letting n8n run all migrations fresh on startup.