Skip to content

Import from Launch Darkly fails with 'InterfaceError: connection already closed' #7167

@sentry

Description

@sentry

Sentry Issue: FLAGSMITH-API-5MD

OperationalError: SSL connection has been closed unexpectedly

  File "django/db/backends/utils.py", line 105, in _execute
    return self.cursor.execute(sql, params)

OperationalError: SSL connection has been closed unexpectedly

(11 additional frame(s) were not displayed)
...
  File "integrations/launch_darkly/services.py", line 91, in _complete_import_request
    raise exc
  File "integrations/launch_darkly/services.py", line 87, in _complete_import_request
    yield
  File "integrations/launch_darkly/services.py", line 1146, in process_import_request
    environments_by_ld_environment_key = _create_environments_from_ld(
  File "integrations/launch_darkly/services.py", line 113, in _create_environments_from_ld
    ) = Environment.objects.get_or_create(

InterfaceError: connection already closed
  File "django/db/backends/base/base.py", line 298, in _cursor
    return self._prepare_cursor(self.create_cursor(name))
  File "django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "django/db/backends/postgresql/base.py", line 429, in create_cursor
    cursor = self.connection.cursor()

InterfaceError: connection already closed
(13 additional frame(s) were not displayed)
...
  File "integrations/launch_darkly/tasks.py", line 24, in process_launch_darkly_import_request
    process_import_request(import_request)
  File "integrations/launch_darkly/services.py", line 1107, in process_import_request
    with _complete_import_request(import_request):
  File "integrations/launch_darkly/services.py", line 100, in _complete_import_request
    import_request.save()

{'import_request_id': 529, 'ld_project_key': 'intl-guest-app', 'organisation_id': 20411, 'project_id': 37151, 'event': 'import-failed', 'logger': 'launch_darkly', 'level': 'error', 'exception': 'Traceback (most recent call last):\n  File "/build/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 105, in _execute\n    return self.cursor.execute(sql, params)\n           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.OperationalError: SSL connection has been closed unexpectedly\n\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n  File "/app/integrations/launch_darkly/services.py", line 91, in _complete_import_request\n    raise exc\n  File "/app/integrations/launch_darkly/services.py", line 87, in _complete_import_request\n    yield\n  File "/app/integrations/launch_darkly/services.py", line 1146, in process_import_request\n    environments_by_ld_environment_key = _create_environments_from_ld(\n        ld_environments=ld_environments,\n        project_id=import_request.project_id,\n    )\n  File "/app/integrations/launch_darkly/services.py", line 113, in _create_environments_from_ld\n    ) = Environment.objects.get_or_create(\n        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^\n        name=ld_environment["name"],\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n        project_id=project_id,\n        ^^^^^^^^^^^^^^^^^^^^^^\n    )\n    ^\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/manager.py", line 87, in manager_method\n    return getattr(self.get_queryset(), name)(*args, **kwargs)\n           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 948, in get_or_create\n    return self.get(**kwargs), False\n           ~~~~~~~~^^^^^^^^^^\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 631, in get\n    num = len(clone)\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 368, in __len__\n    self._fetch_all()\n    ~~~~~~~~~~~~~~~^^\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 1954, in _fetch_all\n    self._result_cache = list(self._iterable_class(self))\n                         ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 93, in __iter__\n    results = compiler.execute_sql(\n        chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size\n    )\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 1623, in execute_sql\n    cursor.execute(sql, params)\n    ~~~~~~~~~~~~~~^^^^^^^^^^^^^\n  File "/build/.venv/lib/python3.13/site-packages/sentry_sdk/utils.py", line 1841, in runner\n    return sentry_patched_function(*args, **kwargs)\n  File "/build/.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/__init__.py", line 645, in execute\n    result = real_execute(self, sql, params)\n  File "/build/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 79, in execute\n    return self._execute_with_wrappers(\n           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^\n        sql, params, many=False, executor=self._execute\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    )\n    ^\n  File "/build/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers\n    return executor(sql, params, many, context)\n  File "/build/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 100, in _execute\n    with self.db.wrap_database_errors:\n         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/build/.venv/lib/python3.13/site-packages/django/db/utils.py", line 91, in __exit__\n    raise dj_exc_value.with_traceback(traceback) from exc_value\n  File "/build/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 105, in _execute\n    return self.cursor.execute(sql, params)\n           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^\ndjango.db.utils.OperationalError: SSL connection has been closed unexpectedly\n\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File "/build/.venv/lib/python3.13/site-packages/django/db/backends/base/base.py", line 298, in _cursor\n    return self._prepare_cursor(self.create_cursor(name))\n                                ~~~~~~~~~~~~~~~~~~^^^^^^\n  File "/build/.venv/lib/python3.13/site-packages/django/utils/asyncio.py", line 26, in inner\n    return func(*args, **kwargs)\n  File "/build/.venv/lib/python3.13/site-packages/django/db/backends/postgresql/base.py", line 429, in create_cursor\n    cursor = self.connection.cursor()\npsycopg2.InterfaceError: connection already closed\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n  File "/app/integrations/launch_darkly/tasks.py", line 24, in process_launch_darkly_import_request\n    process_import_request(import_request)\n    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^\n  File "/app/integrations/launch_darkly/services.py", line 1107, in process_import_request\n    with _complete_import_request(import_request):\n         ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^\n  File "/usr/lib/python3.13/contextlib.py", line 162, in __exit__\n    self.gen.throw(value)\n    ~~~~~~~~~~~~~~^^^^^^^\n  File "/app/integrations/launch_darkly/services.py", line 100, in _complete_import_request\n    import_request.save()\n    ~~~~~~~~~~~~~~~~~~~^^\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/base.py", line 902, in save\n    self.save_base(\n    ~~~~~~~~~~~~~~^\n        using=using,\n        ^^^^^^^^^^^^\n    ...<2 lines>...\n        update_fields=update_fields,\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    )\n    ^\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/base.py", line 1008, in save_base\n    updated = self._save_table(\n        raw,\n    ...<4 lines>...\n        update_fields,\n    )\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/base.py", line 1138, in _save_table\n    updated = self._do_update(\n        base_qs, using, pk_val, values, update_fields, forced_update\n    )\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/base.py", line 1203, in _do_update\n    return filtered._update(values) > 0\n           ~~~~~~~~~~~~~~~~^^^^^^^^\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 1288, in _update\n    return query.get_compiler(self.db).execute_sql(ROW_COUNT)\n           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 2060, in execute_sql\n    row_count = super().execute_sql(result_type)\n  File "/build/.venv/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 1621, in execute_sql\n    cursor = self.connection.cursor()\n  File "/build/.venv/lib/python3.13/site-packages/django/utils/asyncio.py", line 26, in inner\n    return func(*args, **kwargs)\n  File "/build/.venv/lib/python3.13/site-packages/django/db/backends/base/base.py", line 320, in cursor\n    return self._cursor()\n           ~~~~~~~~~~~~^^\n  File "/build/.venv/lib/python3.13/site-packages/django/db/backends/base/base.py", line 297, in _cursor\n    with self.wrap_database_errors:\n         ^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/build/.venv/lib/python3.13/site-packages/django/db/utils.py", line 91, in __exit__\n    raise dj_exc_value.with_traceback(traceback) from exc_value\n  File "/build/.venv/lib/python3.13/site-packages/django/db/backends/base/base.py", line 298, in _cursor\n    return self._prepare_cursor(self.create_cursor(name))\n                                ~~~~~~~~~~~~~~~~~~^^^^^^\n  File "/build/.venv/lib/python3.13/site-packages/django/utils/asyncio.py", line 26, in inner\n    return func(*args, **kwargs)\n  File "/build/.venv/lib/python3.13/site-packages/django/db/backends/postgresql/base.py", line 429, in create_cursor\n    cursor = self.connection.cursor()\ndjango.db.utils.InterfaceError: connection already closed', 'timestamp': '2026-04-08T09:12:32.771985Z'}

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions