Open scooby359 opened 1 year ago
@scooby359 since the 'Maximum call stack size exceeded'
message is in the errors
/errorSchema
properties, I think that this may actually be thrown by ajv, rather than RJSF. Can you see if you can validate data against your schema using Ajv without RJSF? That this only happens in production will make it extra challenging to figure out :slightly_smiling_face:
I am also facing the same issue, I have a dropdown list containing 559 options. Whenever I set the options to be 545 it works fine with the validator. Adding an extra option in the array results in Maximum call stack size exceeded. I tried in the playground of rjsf and when the validate option is enabled it results in the same issue.
I had same issue with default validator and was able to reproduce it in playground as well. What helped me was changing validator version to AJV8_2019 from default AJV8 on playground and than in my project using this advice. https://rjsf-team.github.io/react-jsonschema-form/docs/usage/validation/#ajvclass
To reproduce just create any select field with 500+elements in anyOf
Ran into the same issue recently. Did anyone find a workaround?
I can work around it by using enumNames
but I feel uncomfortable using that since it doesn't seem to be the recommended approach these days.
We deprecated enumNames
because it's not a standard JSON Schema property, and to my knowledge, I think RJSF is the only tool that uses it. We have an open issue to port the feature to uiSchema (#4215). I think it would be wise to keep enumNames
around until #4215 (which is not currently planned) is done. I don't think we are planning on removing enumNames
any time soon (i.e. not in RJSF v6).
We're still waiting for a playground reproduction or CodeSandbox so someone can investigate if this is an issue in RJSF or Ajv. If certain workarounds are working for some and not others, it's possible we have multiple different bugs in this issue.
Prerequisites
What theme are you using?
core
Version
5.1.0
Current Behavior
I'm passing in a JSF with a large number of "OneOf" options - specifically two fields, one with 178 options, the other field with 260 options.
The form renders and behaves as expected when running the site locally.
When deployed to a production environment, it fails to work as expected. The form is rendered and the dropdowns functional, but validation for the whole form fails to occur. No error is logged to the console, but by logging the "onChange" event, I can see the message "Maximum call stack size exceeded" in multiple locations. As validation does not occur, the submit button does not become enabled.
Input Schema:
Output of the change event errors:
Expected Behavior
Expect the form with validation work as expected in a production environment.
Steps To Reproduce
Environment
Anything else?