Skip to content

value too long for type character when uploading Xray on demand binary scan output #14367

@nickhuuzing

Description

@nickhuuzing

Bug description
When I try to upload an Artifactory XRAY on demand binary scan json-ouput to DefectDojo. I got a HTML 500 error. When I look into the engagement, I see that only 50% is processed before failing.

It looks like some strings are to long for the parser.

Steps to reproduce
Upload the JSON into DefectDojo.

Expected behavior
That the json is fully imported and processed by DefectDojo instead of just 50%

Deployment method (select with an X)

  • Podman Compose

Environment information

  • Operating System: MacOS Tahoe 26.3
  • Docker Compose or Helm version: podman version 5.7.1
  • DefectDojo version (see footer) or commit message: 2.55.3

Logs

[23/Feb/2026 08:17:50] INFO [celery.app.trace:128] Task dojo.importers.endpoint_manager.add_endpoints_to_unsaved_finding[aad8a383-1336-40c4-97ec-8da1883ecd4b] succeeded in 8.028899992496008e-05s: None
[23/Feb/2026 08:17:50] INFO [celery.app.trace:128] Task dojo.importers.endpoint_manager.add_endpoints_to_unsaved_finding[c984d862-caa2-4fbf-bf8d-fbc37c07b6fe] succeeded in 7.54560001041682e-05s: None
[23/Feb/2026 08:17:50] INFO [celery.app.trace:128] Task dojo.importers.endpoint_manager.add_endpoints_to_unsaved_finding[a3e846c3-c55b-4b7e-a1e0-646c8ef950a3] succeeded in 8.44150001739763e-05s: None
[23/Feb/2026 08:17:50] ERROR [dojo.api_v2.exception_handler:49] value too long for type character varying(255)
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/django/db/models/query.py", line 948, in get_or_create
    return self.get(**kwargs), False
           ~~~~~~~~^^^^^^^^^^
  File "/usr/local/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
    )
dojo.models.Finding_Group.DoesNotExist: Finding_Group matching query does not exist.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 105, in _execute
    return self.cursor.execute(sql, params)
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/psycopg/cursor.py", line 117, in execute
    raise ex.with_traceback(None)
psycopg.errors.StringDataRightTruncation: value too long for type character varying(255)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 512, in dispatch
    response = handler(request, *args, **kwargs)
  File "/usr/local/lib/python3.13/site-packages/rest_framework/mixins.py", line 19, in create
    self.perform_create(serializer)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/app/dojo/api_v2/views.py", line 2607, in perform_create
    serializer.save(push_to_jira=push_to_jira)
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/dojo/api_v2/serializers.py", line 2605, in save
    self.process_scan(data, context)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/app/dojo/api_v2/serializers.py", line 2419, in process_scan
    context["test"], _, _, _, _, _, _ = importer.process_scan(
                                        ~~~~~~~~~~~~~~~~~~~~~^
        context.pop("scan", None),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/app/dojo/importers/default_importer.py", line 114, in process_scan
    new_findings = self.determine_process_method(parsed_findings, **kwargs)
  File "/app/dojo/importers/base_importer.py", line 303, in determine_process_method
    return self.sync_process_findings(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~^
        parsed_findings,
        ^^^^^^^^^^^^^^^^
        **kwargs,
        ^^^^^^^^^
    )
    ^
  File "/app/dojo/importers/base_importer.py", line 296, in sync_process_findings
    return self.process_findings(parsed_findings, **kwargs)
           ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/dojo/importers/default_importer.py", line 282, in process_findings
    finding_helper.add_findings_to_auto_group(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        group_name,
        ^^^^^^^^^^^
    ...<3 lines>...
        **kwargs,
        ^^^^^^^^^
    )
    ^
  File "/app/dojo/finding/helper.py", line 365, in add_findings_to_auto_group
    finding_group, created = Finding_Group.objects.get_or_create(test=test, creator=creator, name=name)
                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/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/local/lib/python3.13/site-packages/django/db/models/query.py", line 955, in get_or_create
    return self.create(**params), True
           ~~~~~~~~~~~^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/django/db/models/query.py", line 665, in create
    obj.save(force_insert=True, using=self.db)
    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/django_extensions/db/models.py", line 28, in save
    super().save(**kwargs)
    ~~~~~~~~~~~~^^^^^^^^^^
  File "/usr/local/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/local/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 "/usr/local/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 "/usr/local/lib/python3.13/site-packages/django/db/models/base.py", line 1210, in _do_insert
    return manager._insert(
           ~~~~~~~~~~~~~~~^
        [self],
        ^^^^^^^
    ...<3 lines>...
        raw=raw,
        ^^^^^^^^
    )
    ^
  File "/usr/local/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/local/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 "/usr/local/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 1882, in execute_sql
    cursor.execute(sql, params)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/local/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 "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/usr/local/lib/python3.13/site-packages/pghistory/runtime.py", line 136, in _inject_history_context
    return _execute_wrapper(execute(sql, params, many, context))
                            ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 100, in _execute
    with self.db.wrap_database_errors:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/django/db/utils.py", line 91, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 105, in _execute
    return self.cursor.execute(sql, params)
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/psycopg/cursor.py", line 117, in execute
    raise ex.with_traceback(None)
django.db.utils.DataError: value too long for type character varying(255)

Sample scan files
See json attachment:

xray-output.json

Screenshots
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions