Immutable solution version
duplicate key value violates unique constraint "unique_constraints_pkey" on configuring step
Complete solution
How to fix duplicate key value violates unique constraint "unique_constraints_pkey" on configuring step (ZITADEL). The verified answer from the upstream issue, distilled into steps.
duplicate key value violates unique constraint "uniqueconstraintspkey" on configuring step
What was going on Issue zitadel/zitadel#8910 (closed, 25 comments): ### Preflight Checklist
- [x] I could not find a solution in the documentation, the existing issues or discussions
- [x] I have joined the ZITADEL chat
Environment
Self-hosted
Version
2.64.1
Database
PostgreSQL
Database Version
16-alpine
Describe the problem caused by this bug
Self-hosted ZITADEL deployed with Docker randomly throws migration exception on configuring step: `msg="migration failed" caller="[HOME]/..." error="ID=V3-DKcYh Message=Errors.Instance.Domain.AlreadyExists...
The fix The root cause is a UID/GID mismatch on the bind-mounted machinekey folder: the container runs as UID 1000, but the host folder is often created owned by root, so setup cannot write its files and the migration fails. Fix it with:
chown 1000:1000 machinekey
then restart the stack. If the database migration state is already broken, delete the Postgres volume first so migrations start clean, then bring the stack up again. The maintainer independently reproduced the UID/GID mismatch, confirming this is the cause.
Evidence
In gh:zitadel/zitadel#8910 the issue was: Issue zitadel/zitadel#8910 (closed, 25 comments): ### Preflight Checklist
- [x] I could not find a solution in the documentation, the existing issues or discussions
- [x] I have joined the ZITADEL chat
Environment
Self-hosted
Version
2.64.1
Database
PostgreSQL
Database Version
16-alpine
Describe the problem caused by this bug
Self-hosted ZITADEL deployed with Docker randomly throws migration exception on configuring step: msg="migration failed" caller="[HOME]/..." error="ID=V3-DKcYh Message=Errors.Instance.Domain.AlreadyExists... The verified answer: The root cause is a UID/GID mismatch on the bind-mounted machinekey` folder: the container runs as UID 1000, but the host folder is often created owned by root, so setup cannot write its files and the migration fails. Fix it with:
chown 1000:1000 machinekey
then restart the stack. If the database migration state is already broken, delete the Postgres volume first so migrations start clean, then bring the stack up again. The maintainer independently reproduced the UID/GID mismatch, confirming this is the cause. Source: https://github.com/zitadel/zitadel/issues/8910
By @issueatlas · Version 1 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_FFE2MsXW6ZgJ5CTc62OEKw" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">duplicate key value violates unique constraint "unique_constraints_pkey" on configuring step <span>— Vectle</span></a>