-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Labels
area:backendbugSomething isn't workingSomething isn't workingbug/confirmedConfirmed bugsConfirmed bugs
Milestone
Description
Describe the bug
Various errors related to postgres and it's new use as a cache occur after upgrading to 2025.10.0
See logs, but highlights are:
Postgres:
WARNING: you don't own a lock of type ExclusiveLock
ERROR: insert or update on table "authentik_tasks_tasklog" violates foreign key constraint "authentik_tasks_task_task_id_a82f0835_fk_authentik"
ERROR: duplicate key value violates unique constraint "django_postgres_cache_cacheentry_pkey"
Worker:
authentik-worker | {"domain_url": null, "event": "Unexpected failure in before_process_message of .", "exception": [{"exc_notes": [], "exc_type": "IntegrityError", "exc_value": "insert or update on table \"authentik_tasks_tasklog\" violates foreign key constraint \"authentik_tasks_task_task_id_a82f0835_fk_authentik\"\nDETAIL: Key (task_id)=(fe2558c5-9784-4d0f-91c6-605c5ab1e17a) is not present in table \"authentik_tasks_task\".", "exceptions": [], "frames": [{"filename": "/ak-root/.venv/lib/python3.13/site-packages/dramatiq/broker.py", "lineno": 105, "name": "emit_before"}, {"filename": "/authentik/tasks/middleware.py", "lineno": 95, "name": "before_process_message"}, {"filename": "/authentik/tasks/models.py", "lineno": 126, "name": "log"}, {"filename": "/authentik/tasks/models.py", "lineno": 171, "name": "create_from_log_event"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/manager.py", "lineno": 87, "name": "manager_method"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/query.py", "lineno": 663, "name": "create"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/base.py", "lineno": 902, "name": "save"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/base.py", "lineno": 1008, "name": "save_base"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/base.py", "lineno": 1169, "name": "_save_table"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/base.py", "lineno": 1210, "name": "_do_insert"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/manager.py", "lineno": 87, "name": "manager_method"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/query.py", "lineno": 1868, "name": "_insert"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/sql/compiler.py", "lineno": 1882, "name": "execute_sql"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", "lineno": 79, "name": "execute"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", "lineno": 92, "name": "_execute_with_wrappers"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", "lineno": 100, "name": "_execute"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/utils.py", "lineno": 91, "name": "__exit__"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", "lineno": 105, "name": "_execute"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django_prometheus/db/common.py", "lineno": 69, "name": "execute"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/psycopg/cursor.py", "lineno": 97, "name": "execute"}], "is_cause": false, "is_group": false, "syntax_error": null}, {"exc_notes": [], "exc_type": "ForeignKeyViolation", "exc_value": "insert or update on table \"authentik_tasks_tasklog\" violates foreign key constraint \"authentik_tasks_task_task_id_a82f0835_fk_authentik\"\nDETAIL: Key (task_id)=(fe2558c5-9784-4d0f-91c6-605c5ab1e17a) is not present in table \"authentik_tasks_task\".", "exceptions": [], "frames": [{"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", "lineno": 105, "name": "_execute"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django_prometheus/db/common.py", "lineno": 69, "name": "execute"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/psycopg/cursor.py", "lineno": 97, "name": "execute"}], "is_cause": true, "is_group": false, "syntax_error": null}], "level": "critical", "logger": "django_dramatiq_postgres.broker", "pid": 59, "schema_name": "public", "timestamp": "2025-10-28T07:43:08.242698"}
authentik-worker | {"domain_url": null, "event": "Unexpected failure in before_process_message of .", "exception": [{"exc_notes": [], "exc_type": "IntegrityError", "exc_value": "insert or update on table \"authentik_tasks_tasklog\" violates foreign key constraint \"authentik_tasks_task_task_id_a82f0835_fk_authentik\"\nDETAIL: Key (task_id)=(7c2c05f3-d140-4bda-a27b-5c04b5c6c42e) is not present in table \"authentik_tasks_task\".", "exceptions": [], "frames": [{"filename": "/ak-root/.venv/lib/python3.13/site-packages/dramatiq/broker.py", "lineno": 105, "name": "emit_before"}, {"filename": "/authentik/tasks/middleware.py", "lineno": 95, "name": "before_process_message"}, {"filename": "/authentik/tasks/models.py", "lineno": 126, "name": "log"}, {"filename": "/authentik/tasks/models.py", "lineno": 171, "name": "create_from_log_event"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/manager.py", "lineno": 87, "name": "manager_method"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/query.py", "lineno": 663, "name": "create"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/base.py", "lineno": 902, "name": "save"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/base.py", "lineno": 1008, "name": "save_base"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/base.py", "lineno": 1169, "name": "_save_table"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/base.py", "lineno": 1210, "name": "_do_insert"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/manager.py", "lineno": 87, "name": "manager_method"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/query.py", "lineno": 1868, "name": "_insert"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/models/sql/compiler.py", "lineno": 1882, "name": "execute_sql"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", "lineno": 79, "name": "execute"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", "lineno": 92, "name": "_execute_with_wrappers"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", "lineno": 100, "name": "_execute"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/utils.py", "lineno": 91, "name": "__exit__"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", "lineno": 105, "name": "_execute"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django_prometheus/db/common.py", "lineno": 69, "name": "execute"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/psycopg/cursor.py", "lineno": 97, "name": "execute"}], "is_cause": false, "is_group": false, "syntax_error": null}, {"exc_notes": [], "exc_type": "ForeignKeyViolation", "exc_value": "insert or update on table \"authentik_tasks_tasklog\" violates foreign key constraint \"authentik_tasks_task_task_id_a82f0835_fk_authentik\"\nDETAIL: Key (task_id)=(7c2c05f3-d140-4bda-a27b-5c04b5c6c42e) is not present in table \"authentik_tasks_task\".", "exceptions": [], "frames": [{"filename": "/ak-root/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", "lineno": 105, "name": "_execute"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/django_prometheus/db/common.py", "lineno": 69, "name": "execute"}, {"filename": "/ak-root/.venv/lib/python3.13/site-packages/psycopg/cursor.py", "lineno": 97, "name": "execute"}], "is_cause": true, "is_group": false, "syntax_error": null}], "level": "critical", "logger": "django_dramatiq_postgres.broker", "pid": 59, "schema_name": "public", "timestamp": "2025-10-28T07:43:08.286990"}
This occurs directly upon stack deployment after upgrading and removing redis (or even if redis is kept).
Authentik appears to function normally otherwise, though only extremely minimal testing was performed.
To Reproduce
Update to 2025.10.0.
Expected behavior
Postgres interactions occur without error.
Logs
I tried my best to only grab the relevant sections from each service.
Logs are attached because even the cutdown copies exceed the character limit of GitHub.
postgres.log
server.log
worker.log
Version and Deployment (please complete the following information):
2025.10.0
Compose:
services:
postgres:
container_name: authentik-postgres
image: docker.io/library/postgres:17-alpine
restart: unless-stopped
user: 568:568
networks:
- authentik
- db
healthcheck:
test:
- CMD-SHELL
- pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}
start_period: 20s
interval: 30s
retries: 5
timeout: 5s
volumes:
- ${MOUNT_DB}:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: ${PG_PASS:?database password required}
POSTGRES_USER: ${PG_USER:-authentik}
POSTGRES_DB: ${PG_DB:-authentik}
deploy:
resources:
limits:
cpus: 2
memory: 1GB
# SERVER
server:
container_name: authentik-server
image: ghcr.io/goauthentik/server:2025.10.0@sha256:a283f44eefd68bcfc25cdfbdc0372e6384b60468ca042278bde0a4bd8af4680f
restart: unless-stopped
command: server
user: 568:568
networks:
- authentik
- proxy
environment:
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?secret key required}
AUTHENTIK_POSTGRESQL__HOST: authentik-postgres
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
volumes:
- ${MOUNT_SERVER_WORKER}/media:/media
- ${MOUNT_SERVER_WORKER}/custom-templates:/templates
labels:
- traefik.enable=true
# Rules for direct access
- traefik.http.routers.authentik.rule=Host(`auth.${PROXY_TLD}`) # Direct access
- traefik.http.routers.authentik.entrypoints=websecure
- traefik.http.routers.authentik.middlewares=external-expose@file
- traefik.http.services.authentik.loadbalancer.server.port=9000
# Rules for forward auth
- traefik.http.routers.authentik-outpost.rule=(Host(`${PROXY_TLD}`) ||
HostRegexp(`{subdomain:[a-z0-9-]+}.${PROXY_TLD}`)) &&
PathPrefix(`/outpost.goauthentik.io/`)
- traefik.http.routers.authentik-outpost.entrypoints=websecure
- traefik.http.routers.authentik-outpost.middlewares=external-expose@file # Might break, idk yet
- traefik.http.routers.authentik-outpost.tls=true
# ports:
# - ${COMPOSE_PORT_HTTP:-9000}:9000
# - ${COMPOSE_PORT_HTTPS:-9443}:9443
depends_on:
postgres:
condition: service_healthy
deploy:
resources:
limits:
cpus: 4
memory: 4GB
# WORKER
worker:
container_name: authentik-worker
image: ghcr.io/goauthentik/server:2025.10.0@sha256:a283f44eefd68bcfc25cdfbdc0372e6384b60468ca042278bde0a4bd8af4680f
restart: unless-stopped
command: worker
environment:
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?secret key required}
AUTHENTIK_POSTGRESQL__HOST: authentik-postgres
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
AUTHENTIK_DISABLE_STARTUP_ANALYTICS: true
AUTHENTIK_DISABLE_UPDATE_CHECK: false
AUTHENTIK_ERROR_REPORTING__ENABLED: false
# AUTHENTIK_COOKIE_DOMAIN:
# SMTP Host Emails are sent to
AUTHENTIK_EMAIL__HOST: smtp.gmail.com
AUTHENTIK_EMAIL__PORT: 587
# Optionally authenticate (don't add quotation marks to your password)
AUTHENTIK_EMAIL__USERNAME: ${AUTHENTIK_EMAIL_ADDRESS}
AUTHENTIK_EMAIL__PASSWORD: ${AUTHENTIK_EMAIL_PASSWORD}
# Use StartTLS
AUTHENTIK_EMAIL__USE_TLS: true
# Use SSL
AUTHENTIK_EMAIL__USE_SSL: false
AUTHENTIK_EMAIL__TIMEOUT: 10
# Email address authentik will send from, should have a correct @domain
AUTHENTIK_EMAIL__FROM: ${AUTHENTIK_EMAIL_ADDRESS}
user: 568:568
networks:
- authentik
volumes:
# - /var/run/docker.sock:/var/run/docker.sock Only for Docker integration, which has security challenges, and doesn't allow as much manual control. If ever using, use socket proxy instead
- ${MOUNT_SERVER_WORKER}/media:/media
- ${MOUNT_SERVER_WORKER}/certs:/certs
- ${MOUNT_SERVER_WORKER}/custom-templates:/templates
- ${MOUNT_SERVER_WORKER}/custom-blueprints:/blueprints/custom
deploy:
resources:
limits:
cpus: 4
memory: 4GB
depends_on:
postgres:
condition: service_healthy
networks:
authentik:
name: authentik-network
proxy:
external: true
db:
external: true
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:backendbugSomething isn't workingSomething isn't workingbug/confirmedConfirmed bugsConfirmed bugs
Type
Projects
Status
Done