Description
When uploading many images into a classification project, the UI shows errors and stuck
Link to Dataset: https://www.robots.ox.ac.uk/~vgg/data/flowers/102/102flowers.tgz
Steps To Reproduce
Create a new empty classification project.
Open the dataset/gallery page.
Click the image upload button.
Select all images from a large local dataset (102flowers)
Start the upload.
Observe the browser console during upload.
Observed Behavior
Backend logs do not show request failures. Upload/media requests return successful responses (200/201). After upload, the backend API does not appear to contain duplicate persisted media IDs; for one reproduced project, /api/projects/{project_id}/dataset/media returned total=260 and dup_ids=0.
Expected Behavior
The UI should not emit duplicate React key warnings during bulk upload. Gallery items should remain uniquely keyed while upload batches are added and the dataset media query refreshes.
Suspected Area
This appears to be a frontend gallery state/cache issue rather than a backend persistence issue.
Description
When uploading many images into a classification project, the UI shows errors and stuck
Link to Dataset: https://www.robots.ox.ac.uk/~vgg/data/flowers/102/102flowers.tgz
Steps To Reproduce
Create a new empty classification project.
Open the dataset/gallery page.
Click the image upload button.
Select all images from a large local dataset (102flowers)
Start the upload.
Observe the browser console during upload.
Observed Behavior
Backend logs do not show request failures. Upload/media requests return successful responses (200/201). After upload, the backend API does not appear to contain duplicate persisted media IDs; for one reproduced project, /api/projects/{project_id}/dataset/media returned total=260 and dup_ids=0.
Expected Behavior
The UI should not emit duplicate React key warnings during bulk upload. Gallery items should remain uniquely keyed while upload batches are added and the dataset media query refreshes.
Suspected Area
This appears to be a frontend gallery state/cache issue rather than a backend persistence issue.