5056: RB fails to change repo settings (returns with HTTP 500

fmiedniak-abb2

What version are you running?

RB 6.0.2 (dockerized)

What's the URL of the page containing the problem?

https://XXXX/admin/db/scmtools/repository/20/change/

What steps will reproduce the problem?

  1. Open page
  2. Do same change in repo configuration (e.g. correcting the SVN URL or even simply hide the repo by unticking the "show this repo" checkbox) via browser UI
  3. Save it via one of the buttons on the end of the page
    => RB will return with HTTP 500, for detailed logs see below

What is the expected output? What do you see instead?

Repo settings shall be properly changed

What operating system are you using? What browser?

Browser is Chrome on Windows

Please provide any additional information below.

[2025-11-13 07:58:03 +0000] [24] [DEBUG] POST /admin/db/scmtools/repository/20/change/
Exception thrown for user XXXX at https://XXXX/admin/db/scmtools/repository/20/change/

'RepositoryForm' has no field named 'path'.
Traceback (most recent call last):
File "/venv/lib/python3.11/site-packages/django/forms/models.py", line 413, in _post_clean
self.instance.full_clean(exclude=exclude, validate_unique=False)
File "/venv/lib/python3.11/site-packages/django/db/models/base.py", line 1251, in full_clean
raise ValidationError(errors)
django.core.exceptions.ValidationError: {'path': ['A repository with this path already exists']}

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/venv/lib/python3.11/site-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, callback_args, callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.11/site-packages/django/contrib/admin/options.py", line 616, in wrapper
return self.admin_site.admin_view(view)(*args,
kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.11/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
response = view_func(request,
args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.11/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
response = view_func(request, *args,
kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.11/site-packages/django/contrib/admin/sites.py", line 232, in inner
return view(request, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.11/site-packages/django/contrib/admin/options.py", line 1660, in change_view
return self.changeform_view(request, object_id, form_url, extra_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.11/site-packages/django/utils/decorators.py", line 43, in _wrapper
return bound_method(*args,
kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.11/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
response = view_func(request,
args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.11/site-packages/django/contrib/admin/options.py", line 1540, in changeform_view
return self._changeform_view(request, object_id, form_url, extra_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.11/site-packages/django/contrib/admin/options.py", line 1579, in _changeform_view
form_validated = form.is_valid()
^^^^^^^^^^^^^^^
File "/venv/lib/python3.11/site-packages/reviewboard/scmtools/forms.py", line 2117, in is_valid
return (super(RepositoryForm, self).is_valid() and
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.11/site-packages/django/forms/forms.py", line 175, in is_valid
return self.is_bound and not self.errors
^^^^^^^^^^^
File "/venv/lib/python3.11/site-packages/django/forms/forms.py", line 170, in errors
self.full_clean()
File "/venv/lib/python3.11/site-packages/reviewboard/scmtools/forms.py", line 1851, in full_clean
super(RepositoryForm, self).full_clean(*args,
kwargs)
File "/venv/lib/python3.11/site-packages/reviewboard/site/mixins.py", line 285, in full_clean
return super(LocalSiteAwareModelFormMixin, self).full_clean()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.11/site-packages/django/forms/forms.py", line 374, in full_clean
self._post_clean()
File "/venv/lib/python3.11/site-packages/django/forms/models.py", line 415, in _post_clean
self._update_errors(e)
File "/venv/lib/python3.11/site-packages/django/forms/models.py", line 389, in _update_errors
self.add_error(None, errors)
File "/venv/lib/python3.11/site-packages/django/forms/forms.py", line 343, in add_error
raise ValueError(
ValueError: 'RepositoryForm' has no field named 'path'.
[2025-11-13 07:58:03 +0000] [24] [DEBUG] Closing connection.

fmiedniak-abb2
#1 fmiedniak-abb2

BTW: Removing existing repos and adding new repos works perfectly fine, only the editing of existing repos is an issue.