admin icon indicating copy to clipboard operation
admin copied to clipboard

dataProvider delete method only throw Internal Server Error message for errors

Open JasonStrazisar opened this issue 1 year ago • 0 comments

API Platform Admin version(s) affected: 3.4.5

Description
Using the useDelete hook, APIP-Admin only throw an 'Internal Server Error' error, even if the API return an error message. For example, on the API side I have this:

  throw new EntityDeleteForeignKeyException(
      $this->translator->trans(
          'error.entity.my_entity.delete.has_foreign_key',
          [
              '%my_entity%' => $item->value,
              '%entity_linked%' => $this->translator->trans('entity.my_other_entity'),
          ]
      )
  );

This code return a 409 http status code, with the following body:

"@context": "/contexts/Error"
"@type": "hydra:Error"
"hydra:description": "My Error Message"
"hydra:title": "An error occurred"

Wich is at this point the intended behavior so there is no problem.

But then, on the admin side, when we delete the entity and we get a 409 response (in fact, no matter the status code, the result is the same for every HTTP errors), the APIP-admin dataProvider thrown an internal server error and does not take the hydra:description like it do with other methods (PUT, POST, GET...).

This is what is shown in the console when this occurs:

Error
    at new HttpError (HttpError.js:33:23)
    at eval (fetchHydra.js:53:39)

Aditionnal Context:

  • If I remember well, the same type of error happens a while back, when the delete method return a 204 status (maybe it is linked to this https://github.com/api-platform/admin/issues/440)
  • This may be a duplicate of this issue: https://github.com/api-platform/admin/issues/381, but as there where no activity since 2021, I didn't knew if it was ok to just add a comment or if I needed to create a new one

JasonStrazisar avatar Feb 05 '24 17:02 JasonStrazisar