diff --git a/app/models/runtime/route_mapping_model.rb b/app/models/runtime/route_mapping_model.rb index 4a33139ab7c..384454b44e9 100644 --- a/app/models/runtime/route_mapping_model.rb +++ b/app/models/runtime/route_mapping_model.rb @@ -34,7 +34,6 @@ def protocol_with_defaults def validate validates_presence [:app_port] - validates_unique %i[app_guid route_guid process_type app_port] validate_weight end @@ -60,6 +59,15 @@ def has_app_port_specified? app_port != ProcessModel::NO_APP_PORT_SPECIFIED end + def around_save + yield + rescue Sequel::UniqueConstraintViolation => e + raise e unless e.message.include?('route_mappings_app_guid_route_guid_process_type_app_port_key') + + errors.add(%i[app_guid route_guid process_type app_port], :unique) + raise validation_failed_error + end + private def logger