Skip to content
  • Andrey Azeev's avatar
    61db3809
    fix(rate-limit): 500 -> 400 при дубле name в upsert профиля · 61db3809
    Andrey Azeev authored
    IntegrityError по unique uq_rate_limit_profiles_name Postgres поднимает
    уже на session.flush() (INSERT/UPDATE ради profile.id), а try/except
    IntegrityError оборачивал только commit(). Итог: клиент получал 500
    вместо 400 при дублирующемся имени.
    
    Fix: try расширен на flush -> добавление правил -> commit. Ловит обе
    ветки: CREATE (вставка занятого имени) и UPDATE (переименование в
    занятое имя). rollback идемпотентен в рамках async with session.
    
    Тест-гэп: дубль-name в upsert не покрыт (CI был зелёный с багом).
    61db3809
    fix(rate-limit): 500 -> 400 при дубле name в upsert профиля
    Andrey Azeev authored
    IntegrityError по unique uq_rate_limit_profiles_name Postgres поднимает
    уже на session.flush() (INSERT/UPDATE ради profile.id), а try/except
    IntegrityError оборачивал только commit(). Итог: клиент получал 500
    вместо 400 при дублирующемся имени.
    
    Fix: try расширен на flush -> добавление правил -> commit. Ловит обе
    ветки: CREATE (вставка занятого имени) и UPDATE (переименование в
    занятое имя). rollback идемпотентен в рамках async with session.
    
    Тест-гэп: дубль-name в upsert не покрыт (CI был зелёный с багом).
Loading