Skip to content

Bug: "Duplicate IPN not allowed" error when unlocking an existing part #12017

@bvweerd

Description

@bvweerd

Please verify that this bug has NOT been raised before.

  • I checked and didn't find a similar issue

Describe the bug*

When editing an existing part that has been locked and trying to unlock, saving the form throws a "Duplicate IPN not allowed in part settings" error. Other settings while keeping the part locked seem to be working

Settings:
Allow Duplicate IPN: FALSE
Part Revisions: TRUE

Steps to Reproduce

  1. Create a part with revisions enabled (e.g. IPN: AS0001234, Revision: 4)
  2. Create a new revision of that part via the Revisions tab → Duplicate Part (IPN: AS0001234, Revision: 5, linked via "Revision of" field)
  3. Lock the new revision (Revision 5)
  4. Unlock the part to make an edit
  5. Press Save

Expected behaviour

The part saves successfully.

Deployment Method

Docker

Version Information

InvenTree-Version: 1.3.2
Django Version: 5.2.13
Commit Hash: a60e85b
Commit Date: 2026-05-05
Commit Branch: null
Database: django.db.backends.postgresql
Debug-Mode: True
Deployed using Docker: True
Platform: Linux-6.1.0-40-amd64-x86_64-with-glibc2.41
Installer: DOC
Active plugins: [{"name":"InvenTreeBarcode","slug":"inventreebarcode","version":"2.2.0"},{"name":"BOM Exporter","slug":"bom-exporter","version":"1.1.0"},{"name":"InvenTree Exporter","slug":"inventree-exporter","version":"1.0.0"},{"name":"Parameter Exporter","slug":"parameter-exporter","version":"2.0.0"},{"name":"InvenTreeEmailNotifications","slug":"inventree-email-notification","version":"1.0.0"},{"name":"InvenTreeUINotifications","slug":"inventree-ui-notification","version":"1.0.0"},{"name":"InvenTreeCurrencyExchange","slug":"inventreecurrencyexchange","version":"1.0.0"},{"name":"InvenTreeMachines","slug":"inventree-machines","version":"1.0.0"},{"name":"InvenTreeLabel","slug":"inventreelabel","version":"1.1.0"},{"name":"InvenTreeLabelMachine","slug":"inventreelabelmachine","version":"1.0.0"},{"name":"Altium BOM Importer","slug":"altium-bom-importer","version":"0.2.0"},{"name":"Altium Connector","slug":"altium-connector","version":"0.3.0"},{"name":"Custom BOM Exporter","slug":"custom_bom_exporter","version":"0.2.2"},{"name":"Brother Labels","slug":"brother","version":"2.0.5"},{"name":"IPNGenerator","slug":"ipngen","version":"0.2"},{"name":"SolidWorks BOM Importer","slug":"solidworks-bom-importer","version":"0.2.0"},{"name":"Tree View","slug":"tree-view","version":"0.1.1"}]

Try to reproduce on the demo site

I tried to reproduce

Is the bug reproducible on the demo site?

Reproducible

Relevant log output

2026-05-27T08:50:25.185794Z [warning  ] request_finished               [django_structlog.middlewares.request] code=400 ip=10.0.0.1 request='PATCH /api/part/XXXX/' request_id=00000000-0000-0000-0000-000000000000 user_id=1
2026-05-27 08:50:25,185 WARNING {'code': 400, 'request': 'PATCH /api/part/XXXX/', 'event': 'request_finished', 'ip': '10.0.0.1', 'request_id': '00000000-0000-0000-0000-000000000000', 'user_id': 1, 'timestamp': '2026-05-27T08:50:25.185794Z', 'logger': 'django_structlog.middlewares.request', 'level': 'warning'}
Bad Request: /api/part/XXXX/
2026-05-27 08:50:25,186 WARNING Bad Request: /api/part/XXXX/
10.0.0.1 - - [27/May/2026:08:50:25 +0000] "PATCH /api/part/XXXX/ HTTP/1.1" 400 54 "https://inventree.example.com/web/part/XXXX/details" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:151.0) Gecko/20100101 Firefox/151.0"

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions