Validation#
Survey submissions can be validated in two ways: the Python validator and an external SurveyJS binary. Both are optional and configurable per survey.
Python validation (experimental)#
Enable validation (experimental) enables a Python validation layer that
checks submissions against the form schema before storing or running actions.
It is useful for basic forms but may reject complex SurveyJS structures.
External SurveyJS validation (recommended for strict checks)#
Force Server Side Validation runs the compiled SurveyJS validator binary
(Deno build) for every submission. This uses SurveyJS’ own validation engine
and provides the most accurate results for complex forms.
Binary location:
data-validation/dist/survey-validate-macos-denodata-validation/dist/survey-validate-linux-deno
Payload limits#
Each Survey includes Max size payload (MB). Requests larger than this
limit are rejected with HTTP 413 before validation proceeds.
Error responses#
Common error codes returned by @@save-poll include:
missing_poll_resultinvalid_payloadrequest_too_largejson_too_largeinvalid_jsonmissing_form_schemaexternal_validator_missingexternal_validation_failedexternal_validator_error
Logging#
Validation emits INFO-level logs with submission size, status, and server-side validation results.