The plugin hooks add plugin specific validation to record submissions and updates. A case that was not considered was if the client provides a valid base64 metadata payload, but that contains invalid JSON. This causes politeiad to fail with a 500 instead of handling the error gracefully with a UserErrorReply.
Attribution
This bug was introduced by #1180. It was the result of not considering all input edge cases.
Prevention
Test cases for invalid JSON should be added for all plugin metadata validation. A testing framework has not been setup yet for the politeiad plugins. This will be added by #1494.
The plugin hooks add plugin specific validation to record submissions and updates. A case that was not considered was if the client provides a valid base64 metadata payload, but that contains invalid JSON. This causes politeiad to fail with a 500 instead of handling the error gracefully with a
UserErrorReply
.Attribution This bug was introduced by #1180. It was the result of not considering all input edge cases.
Prevention Test cases for invalid JSON should be added for all plugin metadata validation. A testing framework has not been setup yet for the politeiad plugins. This will be added by #1494.