Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

ptamarit
Copy link
Member

@ptamarit ptamarit commented May 3, 2024

❤️ 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.

Copy link
Member Author

@ptamarit ptamarit May 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remark: react-invenio-deposit also has a FormFeedback.js, but it seems that it's not used since #1276.

@ptamarit ptamarit self-assigned this May 3, 2024
Copy link
Member

@slint slint left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, minor comment on dealing with multiple errors.

Also, another minor point:

  • When accepting a record to a community for a review request, we see a similar validation error in the modal that doesn't include the "real" errors. Is this component used there too?

// add extra backend error messages related to fields if present
if (backendErrorMessage && errors.errors) {
backendErrorMessage +=
" " +
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor: should we do a bullet-list instead (similar to the usual form validation errors), since it's an array?

@carlinmack
Copy link
Contributor

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?

@ptamarit ptamarit marked this pull request as draft May 7, 2024 15:01
Copy link
Contributor

github-actions bot commented Jul 7, 2024

This PR was automatically marked as stale.

@github-actions github-actions bot added the stale label Jul 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants