Set a maximum level of encoding nested arguments of exception traces #28324
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This will make sure that nested objects or arrays do not cause exceeding the maximum nesting level of functions when parsing arguments of an exception trace. In addition the second commit ensures that the class of an encoded object argument is always listed first in the resulting json object.
Found when debugging issues in #25774 with @marcoambrosini where a faulty scss code caused an exception but the arguments passed in the SCSS library contain a deeply nested tree of the parsed scss.
Example patch to reproduce the exception happening:
Without this patch an empty page is shown and just a generic error with xdebug or even a core dump without:
With this PR we get a proper error page and trace in the logs: