Error when two different files are uploaded with the same name DesignManagement::Version::CouldNotCreateVersion

https://sentry.gitlab.net/gitlab/gitlabcom/issues/1731984/?referrer=gitlab_plugin

PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "design_management_designs_versions_uniqueness"
DETAIL:  Key (design_id, version_id)=(45999, 52332) already exists.

  active_record/connection_adapters/postgresql/database_statements.rb:92:in `exec'
    @connection.async_exec(sql)
  design_management/save_designs_service.rb:34:in `upload_designs!'
    ::DesignManagement::Version.with_lock(project.id, repository) do
  gitlab/metrics/instrumentation.rb:161:in `block in upload_designs!'
    .measure { super }
  gitlab/metrics/method_call.rb:27:in `measure'
    retval = yield
  gitlab/metrics/instrumentation.rb:161:in `upload_designs!'
    .measure { super }
...
(245 additional frame(s) were not displayed)

ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "design_management_designs_versions_uniqueness"
DETAIL:  Key (design_id, version_id)=(45999, 52332) already exists.

DesignManagement::Version::CouldNotCreateVersion: DesignManagement::Version::CouldNotCreateVersion
  design_management/version.rb:99:in `rescue in create_for_designs'
    raise CouldNotCreateVersion.new(sha, issue_id, design_actions)
  design_management/save_designs_service.rb:34:in `upload_designs!'
    ::DesignManagement::Version.with_lock(project.id, repository) do
  gitlab/metrics/instrumentation.rb:161:in `block in upload_designs!'
    .measure { super }
  gitlab/metrics/method_call.rb:27:in `measure'
    retval = yield
  gitlab/metrics/instrumentation.rb:161:in `upload_designs!'
    .measure { super }
...
(245 additional frame(s) were not displayed)

DesignManagement::Version::CouldNotCreateVersion: could not create version from commit: 49f91368748eb7299b6664dba4992c5176a4717b

Issue was refined in #237798 (closed).

Permissions and Security

None.

Documentation

None.

Availability & Testing

Unit tests of SaveDesignsService.

Recommended MR Breakdown

1 MR.

Edited by Luke Duncalfe