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

violationKey in getSubmissionErrors is undefined / validation results in generic "Server communication error" #548

Closed
herndlm opened this issue Apr 19, 2024 · 4 comments · Fixed by #553
Labels

Comments

@herndlm
Copy link
Contributor

herndlm commented Apr 19, 2024

API Platform version(s) affected: 3.2.20

@api-platform/admin@3.4.6
@api-platform/api-doc-parser@0.16.4

Description

API validation errors result in generic "Server communication error" in react-admin

How to reproduce

Possible Solution

Additional Context

Interestingly it seems to be still working with @api-platform/admin@3.4.5. What confuses me is that 3.4.6 claims to fix issues like these.

API response:
content-type: application/problem+json; charset=utf-8
body:

{
  "@id": "\\/validation_errors\\/6b3befbc-2f01-4ddf-be21-b57898905284",
  "@type": "ConstraintViolationList",
  "status": 422,
  "violations": [
    {
      "propertyPath": "entitlements",
      "message": "At least one product must be selected if policy is \\u0022restricted\\u0022.",
      "code": "6b3befbc-2f01-4ddf-be21-b57898905284"
    }
  ],
  "detail": "entitlements: At least one product must be selected if policy is \\u0022restricted\\u0022.",
  "hydra:title": "An error occurred",
  "hydra:description": "entitlements: At least one product must be selected if policy is \\u0022restricted\\u0022.",
  "type": "\\/validation_errors\\/6b3befbc-2f01-4ddf-be21-b57898905284",
  "title": "An error occurred"
}

react-admin UI behaviour
image

Step debugging with 3.4.5 where it works
image

Step debugging with 3.4.6 where it doesn't work
image

There seems to be something going on with the protocol/domain/port part in props or their values. I wonder if I misconfigured something, somewhere. Not sure, if related, but API platform's rfc_7807_compliant_errors is true and changing this doesn't change anything apparently.

Is this in any way useful, maybe to give me further tips at least how to debug? I can't create a simple producer at the moment unfortunately.

@PawelSuwinski
Copy link
Contributor

PawelSuwinski commented Apr 25, 2024

Try to debug more where hydra response is expanded, I guess it works with api-platform/core 3.1.x but not with 3.2.x (?, not verified):

return jsonld
.expand(body, {
base: getDocumentationUrlFromHeaders(headers),
documentLoader,
})

@papppeter
Copy link

papppeter commented May 8, 2024

3.4.5 works for me as expected with api platform 3.2, 3.3.2 tested.

@ type, @ id gets the extra prefix as @herndlm pictures shows

server response looks correct:
image

getDocumentationUrlFromHeaders(headers) gives back full url to /api/docs.jsonld

@PawelSuwinski do you have any other suggestion?

another hint maybe less usefull it does not step into the documentLoader

my question is, which one is the correct format?

@herndlm
Copy link
Contributor Author

herndlm commented May 10, 2024

I unfortunately didn't find more time to further debug it yet :/ but looks like you found the issue and fix already @PawelSuwinski. thx!

@PawelSuwinski
Copy link
Contributor

PawelSuwinski commented May 13, 2024

@herndlm and @papppeter thanks for test cases and for debugging.

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 a pull request may close this issue.

3 participants