Skip to content

LDAP Sync Fails with tenant_id NULL Constraint Error #21959

@witayaporn

Description

@witayaporn

Describe the bug

When running LDAP synchronization, the main sync task (authentik.sources.ldap.tasks.ldap_sync) fails with a database error related to a missing tenant_id. This appears to occur during task creation or scheduling of sub-tasks (e.g., authentik.sources.ldap.tasks.ldap_sync_page)

How to reproduce

  1. Trigger LDAP synchronization
  2. Observe worker logs during sync execution

Expected behavior

LDAP sync tasks should be created and executed successfully.

Screenshots

Image

Additional context

null value in column "tenant_id" of relation "authentik_tasks_task" violates not-null constraint DETAIL: Failing row contains (57cad683-70a2-4c99-a827-1cd2cc403600, default, authentik.sources.ldap.tasks.ldap_sync_page, \x8005959e010000000000007d94288c0a71756575655f6e616d65948c076465..., queued, 2026-04-29 04:44:22.665456+00, null, null, null, null, [], [], queued, null, null, null, 0).

Deployment Method

Docker

Version

2026.2.2

Relevant log output

Attributes
{
    "exception": [
        {
            "frames": [
                {
                    "name": "process_message",
                    "lineno": 487,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/dramatiq/worker.py"
                },
                {
                    "name": "__call__",
                    "lineno": 185,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/dramatiq/actor.py"
                },
                {
                    "name": "ldap_sync",
                    "lineno": 86,
                    "filename": "/authentik/sources/ldap/tasks.py"
                },
                {
                    "name": "run",
                    "lineno": 316,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/dramatiq/composition.py"
                },
                {
                    "name": "wrapped_f",
                    "lineno": 338,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/tenacity/__init__.py"
                },
                {
                    "name": "__call__",
                    "lineno": 477,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/tenacity/__init__.py"
                },
                {
                    "name": "iter",
                    "lineno": 378,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/tenacity/__init__.py"
                },
                {
                    "name": "exc_check",
                    "lineno": 420,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/tenacity/__init__.py"
                },
                {
                    "name": "reraise",
                    "lineno": 187,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/tenacity/__init__.py"
                },
                {
                    "name": "result",
                    "lineno": 443,
                    "filename": "/usr/local/lib/python3.14/concurrent/futures/_base.py"
                },
                {
                    "name": "__get_result",
                    "lineno": 395,
                    "filename": "/usr/local/lib/python3.14/concurrent/futures/_base.py"
                },
                {
                    "name": "__call__",
                    "lineno": 480,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/tenacity/__init__.py"
                },
                {
                    "name": "wrapper",
                    "lineno": 65,
                    "filename": "/ak-root/packages/django-dramatiq-postgres/django_dramatiq_postgres/broker.py"
                }
            ],
            "exc_type": "ConnectionError",
            "is_cause": false,
            "is_group": false,
            "exc_notes": [],
            "exc_value": "null value in column \"tenant_id\" of relation \"authentik_tasks_task\" violates not-null constraint\nDETAIL:  Failing row contains (e924ed1c-e1b1-44d0-b2a4-7061276e5c85, default, authentik.sources.ldap.tasks.ldap_sync_page, \\x8005959e010000000000007d94288c0a71756575655f6e616d65948c076465..., queued, 2026-04-29 02:31:24.951332+00, null, null, null, null, [], [], queued, null, null, null, 0).",
            "exceptions": [],
            "syntax_error": null
        },
        {
            "frames": [
                {
                    "name": "wrapper",
                    "lineno": 62,
                    "filename": "/ak-root/packages/django-dramatiq-postgres/django_dramatiq_postgres/broker.py"
                },
                {
                    "name": "enqueue",
                    "lineno": 176,
                    "filename": "/ak-root/packages/django-dramatiq-postgres/django_dramatiq_postgres/broker.py"
                },
                {
                    "name": "update_or_create",
                    "lineno": 990,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/models/query.py"
                },
                {
                    "name": "get_or_create",
                    "lineno": 955,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/models/query.py"
                },
                {
                    "name": "create",
                    "lineno": 665,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/models/query.py"
                },
                {
                    "name": "save",
                    "lineno": 902,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/models/base.py"
                },
                {
                    "name": "save_base",
                    "lineno": 1008,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/models/base.py"
                },
                {
                    "name": "_save_table",
                    "lineno": 1169,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/models/base.py"
                },
                {
                    "name": "_do_insert",
                    "lineno": 1210,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/models/base.py"
                },
                {
                    "name": "manager_method",
                    "lineno": 87,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/models/manager.py"
                },
                {
                    "name": "_insert",
                    "lineno": 1873,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/models/query.py"
                },
                {
                    "name": "execute_sql",
                    "lineno": 1882,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/models/sql/compiler.py"
                },
                {
                    "name": "execute",
                    "lineno": 79,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/backends/utils.py"
                },
                {
                    "name": "_execute_with_wrappers",
                    "lineno": 92,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/backends/utils.py"
                },
                {
                    "name": "_execute",
                    "lineno": 100,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/backends/utils.py"
                },
                {
                    "name": "__exit__",
                    "lineno": 91,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/utils.py"
                },
                {
                    "name": "_execute",
                    "lineno": 105,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/backends/utils.py"
                },
                {
                    "name": "execute",
                    "lineno": 69,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django_prometheus/db/common.py"
                },
                {
                    "name": "execute",
                    "lineno": 117,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/psycopg/cursor.py"
                }
            ],
            "exc_type": "IntegrityError",
            "is_cause": true,
            "is_group": false,
            "exc_notes": [],
            "exc_value": "null value in column \"tenant_id\" of relation \"authentik_tasks_task\" violates not-null constraint\nDETAIL:  Failing row contains (e924ed1c-e1b1-44d0-b2a4-7061276e5c85, default, authentik.sources.ldap.tasks.ldap_sync_page, \\x8005959e010000000000007d94288c0a71756575655f6e616d65948c076465..., queued, 2026-04-29 02:31:24.951332+00, null, null, null, null, [], [], queued, null, null, null, 0).",
            "exceptions": [],
            "syntax_error": null
        },
        {
            "frames": [
                {
                    "name": "_execute",
                    "lineno": 105,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/backends/utils.py"
                },
                {
                    "name": "execute",
                    "lineno": 69,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django_prometheus/db/common.py"
                },
                {
                    "name": "execute",
                    "lineno": 117,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/psycopg/cursor.py"
                }
            ],
            "exc_type": "NotNullViolation",
            "is_cause": true,
            "is_group": false,
            "exc_notes": [],
            "exc_value": "null value in column \"tenant_id\" of relation \"authentik_tasks_task\" violates not-null constraint\nDETAIL:  Failing row contains (e924ed1c-e1b1-44d0-b2a4-7061276e5c85, default, authentik.sources.ldap.tasks.ldap_sync_page, \\x8005959e010000000000007d94288c0a71756575655f6e616d65948c076465..., queued, 2026-04-29 02:31:24.951332+00, null, null, null, null, [], [], queued, null, null, null, 0).",
            "exceptions": [],
            "syntax_error": null
        },
        {
            "frames": [
                {
                    "name": "get_or_create",
                    "lineno": 948,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/models/query.py"
                },
                {
                    "name": "get",
                    "lineno": 635,
                    "filename": "/ak-root/.venv/lib/python3.14/site-packages/django/db/models/query.py"
                }
            ],
            "exc_type": "DoesNotExist",
            "is_cause": false,
            "is_group": false,
            "exc_notes": [],
            "exc_value": "Task matching query does not exist.",
            "exceptions": [],
            "syntax_error": null
        }
    ]
}

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions