Summary
Uploading an older model archive can succeed on the backend but appear to do nothing in the browser.
For legacy archives, the backend intentionally returns a warning response from API/Routes/Upload/UploadRoute.py with a payload like status_code: "warning" plus message_warning. However, the upload success handler in WebAPP/Classes/Base.Class.js does not handle that warning path, so the UI does not append the restored model, does not close the restore modal, and does not show the upgrade guidance.
As a result, users can successfully restore a legacy model on disk but think the restore failed because the frontend never reflects the completed action.
Expected behavior
If the backend returns a restore response with:
status_code: "warning"
- a valid
casename
- a legacy-upgrade
message_warning
the frontend should still treat the restore as successful and:
- add the restored model to the list
- close the restore modal
- show the success message
- also show the upgrade warning / migration guidance
Only non-restoring warnings such as "model already exists" should remain warning-only and avoid mutating the UI.
Reproduction steps
- Start the application locally.
- Open the "Restore" / upload modal for case archives.
- Upload a legacy model archive that triggers the backend legacy-warning path, such as a model with
osy-version 4.0, 4.5, or 4.9.
- Wait for the upload request to complete successfully.
- Observe that the backend returns a warning restore response, but the frontend does not add the model to the UI and does not close the modal.
Optional verification:
- Inspect the network response for the upload request.
- Confirm the response contains
status_code: "warning", casename, and message_warning.
- Compare that with the browser behavior, which remains unchanged.
Environment
- OS: Windows
- Browser: Chromium-based browser (Chrome / Edge)
- App state: reproduced on
main before applying a frontend fix
- Relevant frontend file:
WebAPP/Classes/Base.Class.js
- Relevant backend file:
API/Routes/Upload/UploadRoute.py
Logs or screenshots
Example backend response payload:
{
"response": [
{
"message_warning": "You have restored a model created in a earlier version...",
"message": "Model LegacyModel have been uploaded!",
"status_code": "warning",
"casename": "LegacyModel"
}
]
}
Observed frontend behavior after this response:
no restored model is appended to the case list
restore modal stays open
upgrade warning is not surfaced to the user
Related work checked
I checked the current restore / archive-related work and did not find an issue specifically covering the frontend warning-handling gap for legacy restores.
Related areas reviewed:
- backend restore response handling in
API/Routes/Upload/UploadRoute.py
- frontend upload success handling in
WebAPP/Classes/Base.Class.js
- recent archive / zip / restore-related work does not appear to address this specific UI behavior gap
Proposed track
None
Summary
Uploading an older model archive can succeed on the backend but appear to do nothing in the browser.
For legacy archives, the backend intentionally returns a warning response from
API/Routes/Upload/UploadRoute.pywith a payload likestatus_code: "warning"plusmessage_warning. However, the upload success handler inWebAPP/Classes/Base.Class.jsdoes not handle that warning path, so the UI does not append the restored model, does not close the restore modal, and does not show the upgrade guidance.As a result, users can successfully restore a legacy model on disk but think the restore failed because the frontend never reflects the completed action.
Expected behavior
If the backend returns a restore response with:
status_code: "warning"casenamemessage_warningthe frontend should still treat the restore as successful and:
Only non-restoring warnings such as "model already exists" should remain warning-only and avoid mutating the UI.
Reproduction steps
osy-version4.0,4.5, or4.9.Optional verification:
status_code: "warning",casename, andmessage_warning.Environment
mainbefore applying a frontend fixWebAPP/Classes/Base.Class.jsAPI/Routes/Upload/UploadRoute.pyLogs or screenshots
Example backend response payload:
{ "response": [ { "message_warning": "You have restored a model created in a earlier version...", "message": "Model LegacyModel have been uploaded!", "status_code": "warning", "casename": "LegacyModel" } ] }Observed frontend behavior after this response:
no restored model is appended to the case list
restore modal stays open
upgrade warning is not surfaced to the user
Related work checked
I checked the current restore / archive-related work and did not find an issue specifically covering the frontend warning-handling gap for legacy restores.
Related areas reviewed:
API/Routes/Upload/UploadRoute.pyWebAPP/Classes/Base.Class.jsProposed track
None