inveniosoftware / invenio-rdm-records

DataCite-based data model for InvenioRDM flavour.
https://invenio-rdm-records.readthedocs.io
MIT License
15 stars 81 forks source link

deposit-ui: show detailed backend error messages if present #1741

Open ptamarit opened 2 months ago

ptamarit commented 2 months ago

:heart: Thank you for your contribution!

Description

This pull request proposes to include more error details from the backend, if present, when an error occurs during record publishing.

This is for instance the case in Zenodo when trying to publish a record with a pending file uploads. This can be either if the file upload failed halfway (can be reproduced with EOS and by reloading the page in the middle of an upload), or if the file is taking a long time to upload (can be reproduced by throttling the network).

In such cases:

  1. The PUT on /api/records/1234/draft?expand=1 succeeds
  2. The POST on /api/records/1234/draft/actions/publish?expand=1 fails with the following response:
    {
    "status": 400,
    "message": "A validation error occurred.",
    "errors": [
    {
      "field": "files",
      "messages": [
        "One or more files have not completed their transfer, please wait."
      ]
    }
    ]
    }

We are currently only showing message: current message

The proposal of adding the info present in the errors array looks like this: proposed message

Checklist

Ticks in all boxes and 🟢 on all GitHub actions status checks are required to merge:

Frontend

Reminder

By using GitHub, you have already agreed to the GitHub’s Terms of Service including that:

  1. You license your contribution under the same terms as the current repository’s license.
  2. You agree that you have the right to license your contribution under the current repository’s license.
carlinmack commented 1 month ago

To add on to slint's point: When you try to accept a submission to a community which has pending files, it tells the user "Validation error", does this also fix that?