The bitbucket repository connection is added to sentry.
The popup window shows my "Managed installed apps" page in bitbucket, and the URL has these parameters on it:
?error=server_error&error_description=The+app+failed+to+be+installed%3A+Error+calling+installed+at+URL+https%3A%2F%2Fself-hosted-sentry-domain.com%2Fextensions%2Fbitbucket%2Finstalled%2F%3A+500+Server+Error%3A+Internal+Server+Error+for+url%3A+https%3A%2F%2Fself-hosted-sentry-domain.com%2Fextensions%2Fbitbucket%2Finstalled%2F&principal=our-principal
2026-04-17 10:20:22.899 UTC [43] ERROR: value too long for type character varying(64)
2026-04-17 10:20:22.899 UTC [43] STATEMENT: INSERT INTO "sentry_integration" ("date_updated", "date_added", "provider", "external_id", "name", "metadata", "status", "debug_data") VALUES ('2026-04-17T10:20:22.898180+00:00'::timestamptz, '2026-04-17T10:20:22.898183+00:00'::timestamptz, 'bitbucket', 'ari:cloud:bitbucket::app/{54cd1367-3824-4c5d-a56c-4eb76cddbd85}/self-hosted-sentry-domain.com.bitbucket', 'our-principal', '{"sentry_encrypted_field_value": "enc:plaintext:SOME_LONG_BASE64_STRING"}'::jsonb, 0, '{}'::jsonb) RETURNING "sentry_integration"."id"
Traceback (most recent call last):
File "/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 948, in get_or_create
return self.get(**kwargs), False
~~~~~~~~^^^^^^^^^^
File "/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 635, in get
raise self.model.DoesNotExist(
"%s matching query does not exist." % self.model._meta.object_name
)
sentry.integrations.models.integration.Integration.DoesNotExist: Integration matching query does not exist.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 105, in _execute
return self.cursor.execute(sql, params)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/usr/src/sentry/src/sentry/db/postgres/decorators.py", line 16, in inner
return func(self, *args, **kwargs)
File "/usr/src/sentry/src/sentry/db/postgres/base.py", line 95, in execute
return self.cursor.execute(sql, params)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
psycopg2.errors.StringDataRightTruncation: value too long for type character varying(64)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/sentry/src/sentry/api/base.py", line 317, in handle_exception_with_details
response = self.handle_exception(exc)
File "/.venv/lib/python3.13/site-packages/rest_framework/views.py", line 475, in handle_exception
self.raise_uncaught_exception(exc)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/.venv/lib/python3.13/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception
raise exc
File "/usr/src/sentry/src/sentry/api/base.py", line 431, in dispatch
response = handler(request, *args, **kwargs)
File "/usr/src/sentry/src/sentry/integrations/bitbucket/installed.py", line 32, in post
ensure_integration(IntegrationProviderSlug.BITBUCKET.value, data)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/sentry/src/sentry/integrations/pipeline.py", line 56, in ensure_integration
integration, created = Integration.objects.get_or_create(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
provider=key, external_id=data["external_id"], defaults=defaults
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/src/sentry/src/sentry/silo/base.py", line 158, in override
return original_method(*args, **kwargs)
File "/.venv/lib/python3.13/site-packages/django/db/models/manager.py", line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/usr/src/sentry/src/sentry/silo/base.py", line 158, in override
return original_method(*args, **kwargs)
File "/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 955, in get_or_create
return self.create(**params), True
~~~~~~~~~~~^^^^^^^^^^
File "/usr/src/sentry/src/sentry/silo/base.py", line 158, in override
return original_method(*args, **kwargs)
File "/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 665, in create
obj.save(force_insert=True, using=self.db)
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/sentry/src/sentry/silo/base.py", line 158, in override
return original_method(*args, **kwargs)
File "/.venv/lib/python3.13/site-packages/django/db/models/base.py", line 902, in save
self.save_base(
~~~~~~~~~~~~~~^
using=using,
^^^^^^^^^^^^
...<2 lines>...
update_fields=update_fields,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/src/sentry/src/sentry/silo/base.py", line 158, in override
return original_method(*args, **kwargs)
File "/.venv/lib/python3.13/site-packages/django/db/models/base.py", line 1008, in save_base
updated = self._save_table(
raw,
...<4 lines>...
update_fields,
)
File "/.venv/lib/python3.13/site-packages/django/db/models/base.py", line 1169, in _save_table
results = self._do_insert(
cls._base_manager, using, fields, returning_fields, raw
)
File "/.venv/lib/python3.13/site-packages/django/db/models/base.py", line 1210, in _do_insert
return manager._insert(
~~~~~~~~~~~~~~~^
[self],
^^^^^^^
...<3 lines>...
raw=raw,
^^^^^^^^
)
^
File "/.venv/lib/python3.13/site-packages/django/db/models/manager.py", line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 1873, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/.venv/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 1882, in execute_sql
cursor.execute(sql, params)
~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/.venv/lib/python3.13/site-packages/sentry_sdk/utils.py", line 1872, in runner
return sentry_patched_function(*args, **kwargs)
File "/.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/__init__.py", line 656, in execute
result = real_execute(self, sql, params)
File "/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 79, in execute
return self._execute_with_wrappers(
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
sql, params, many=False, executor=self._execute
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/usr/src/sentry/src/sentry/db/postgres/base.py", line 70, in _execute__include_sql_in_error
return execute(sql, params, many, context)
File "/usr/src/sentry/src/sentry/db/postgres/base.py", line 58, in _execute__clean_params
return execute(sql, clean_bad_params(params), many, context)
File "/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 100, in _execute
with self.db.wrap_database_errors:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/.venv/lib/python3.13/site-packages/django/db/utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 105, in _execute
return self.cursor.execute(sql, params)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/usr/src/sentry/src/sentry/db/postgres/decorators.py", line 16, in inner
return func(self, *args, **kwargs)
File "/usr/src/sentry/src/sentry/db/postgres/base.py", line 95, in execute
return self.cursor.execute(sql, params)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
django.db.utils.DataError: value too long for type character varying(64)
SQL: INSERT INTO "sentry_integration" ("date_updated", "date_added", "provider", "external_id", "name", "metadata", "status", "debug_data") VALUES (%s, %s, %s, %s, %s, %s, %s, %s) RETURNING "sentry_integration"."id"
10:20:22 [INFO] sentry.access.api: api.access (method='POST' view='sentry.integrations.bitbucket.installed.BitbucketInstalledEndpoint' response='500' is_frontend_request='False' path='/extensions/bitbucket/installed/' caller_ip='104.192.142.248' user_agent='python-requests/2.32.3' rate_limited='False' request_duration_seconds='0.05239725112915039' rate_limit_type='DNE')
10:20:22 [ERROR] django.request: Internal Server Error: /extensions/bitbucket/installed/ (status_code=500 request=<WSGIRequest: POST '/extensions/bitbucket/installed/'>)
Environment
self-hosted (https://develop.sentry.dev/self-hosted/)
Steps to Reproduce
Expected Result
The bitbucket repository connection is added to sentry.
Actual Result
The popup window shows my "Managed installed apps" page in bitbucket, and the URL has these parameters on it:
?error=server_error&error_description=The+app+failed+to+be+installed%3A+Error+calling+installed+at+URL+https%3A%2F%2Fself-hosted-sentry-domain.com%2Fextensions%2Fbitbucket%2Finstalled%2F%3A+500+Server+Error%3A+Internal+Server+Error+for+url%3A+https%3A%2F%2Fself-hosted-sentry-domain.com%2Fextensions%2Fbitbucket%2Finstalled%2F&principal=our-principal(I replaced our domain with
self-hosted-sentry-domain.comand our principal withour-principal.When i check the logs of the docker containers i see these:
From postgres-1:
From web-1:
I guess the external_id field is too long?
ari:cloud:bitbucket::app/{54cd1367-3824-4c5d-a56c-4eb76cddbd85}/self-hosted-sentry-domain.com.bitbucketThe original with our own domain is 103 characters long. But even up to the
/behind the uuid it is already 64 characters.Product Area
Settings - Repositories
Link
No response
DSN
No response
Version
26.3.1