{
"statusCode": 400,
"code": "FST_ERR_VALIDATION",
"error": "Bad Request",
"message": "body must have required property 'rule', body must have required property 'rule', body must have required property 'rule', body must match exactly one schema in oneOf, body must have required property 'check_run', body must have required property 'check_run', body must have required property 'check_run', body must have required property 'check_run', body must match exactly one schema in oneOf, body must have required property 'check_suite', body must have required property 'check_suite', body must have required property 'check_suite', body must match exactly one schema in oneOf, body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must match exactly one schema in oneOf, body must have required property 'comment', body must match exactly one schema in oneOf, body must have required property 'ref', body must have required property 'ref', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must match exactly one schema in oneOf, body must have required property 'key', body must have required property 'key', body must match exactly one schema in oneOf, body must have required property 'deployment', body must match exactly one schema in oneOf, body must NOT have additional properties, body must match exactly one schema in oneOf, body must have required property 'workflow_run', body must have required property 'workflow_run', body must have required property 'environment', body must match exactly one schema in oneOf, body must have required property 'deployment_status', body must match exactly one schema in oneOf, body must have required property 'discussion', body must have required property 'changes', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'changes', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'discussion', body must match exactly one schema in oneOf, body must have required property 'comment', body must have required property 'comment', body must have required property 'changes', body must match exactly one schema in oneOf, body must have required property 'forkee', body must NOT have additional properties, body must match exactly one schema in oneOf, body must have required property 'pages', body must NOT have additional properties, body must NOT have additional properties, body must NOT have additional properties, body must NOT have additional properties, body must NOT have additional properties, body must match exactly one schema in oneOf, body must have required property 'repository_selection', body must have required property 'repository_selection', body must match exactly one schema in oneOf, body must have required property 'target_type', body must match exactly one schema in oneOf, body must have required property 'issue', body must have required property 'issue', body must have required property 'changes', body must match exactly one schema in oneOf, body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'changes', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'changes', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must match exactly one schema in oneOf, body must have required property 'label', body must have required property 'label', body must have required property 'label', body must match exactly one schema in oneOf, body must have required property 'effective_date', body must have required property 'effective_date', body must have required property 'effective_date', body must have required property 'effective_date', body must have required property 'effective_date', body must match exactly one schema in oneOf, body must have required property 'member', body must have required property 'changes', body must have required property 'member', body must match exactly one schema in oneOf, body must have required property 'scope', body must have required property 'scope', body must match exactly one schema in oneOf, body must have required property 'merge_group', body must match exactly one schema in oneOf, body must have required property 'hook_id', body must match exactly one schema in oneOf, body must have required property 'milestone', body must have required property 'milestone', body must have required property 'milestone', body must have required property 'changes', body must have required property 'milestone', body must match exactly one schema in oneOf, body must have required property 'blocked_user', body must have required property 'blocked_user', body must match exactly one schema in oneOf, body must NOT have additional properties, body must have required property 'membership', body must have required property 'invitation', body must have required property 'membership', body must have required property 'changes', body must match exactly one schema in oneOf, body must have required property 'package', body must have required property 'package', body must match exactly one schema in oneOf, body must have required property 'id', body must have required property 'zen', body must have required property 'project', body must have required property 'project', body must have required property 'project', body must have required property 'project', body must have required property 'project', body must match exactly one schema in oneOf, body must have required property 'changes', body must have required property 'project_card', body must have required property 'project_card', body must have required property 'changes', body must have required property 'project_card', body must match exactly one schema in oneOf, body must have required property 'project_column', body must have required property 'project_column', body must have required property 'changes', body must have required property 'project_column', body must match exactly one schema in oneOf, body must have required property 'changes', body must have required property 'changes', body must have required property 'projects_v2_item', body must have required property 'projects_v2_item', body must have required property 'changes', body must have required property 'changes', body must have required property 'changes', body must match exactly one schema in oneOf, body must NOT have additional properties, body must have required property 'assignee', body must have required property 'reason', body must have required property 'reason', body/action must be equal to one of the allowed values, body/action must be equal to one of the allowed values, body must have required property 'milestone', body must have required property 'reason', body must have required property 'changes', body/action must be equal to one of the allowed values, body must have required property 'label', body/action must be equal to one of the allowed values, body must have required property 'milestone', body/repository must NOT have additional properties, body/action must be equal to one of the allowed values, body/action must be equal to one of the allowed values, body must have required property 'requested_reviewer', body must have required property 'requested_team', body must match exactly one schema in oneOf, body must have required property 'requested_reviewer', body must have required property 'requested_team', body must match exactly one schema in oneOf, body must have required property 'before', body must have required property 'assignee', body must have required property 'label', body/action must be equal to one of the allowed values, body must match exactly one schema in oneOf, body must have required property 'review', body must have required property 'changes', body must have required property 'review', body must match exactly one schema in oneOf, body must have required property 'comment', body must have required property 'comment', body must have required property 'changes', body must match exactly one schema in oneOf, body must have required property 'thread', body must have required property 'thread', body must match exactly one schema in oneOf, body must have required property 'ref', body must have required property 'registry_package', body must have required property 'registry_package', body must match exactly one schema in oneOf, body must have required property 'release', body must have required property 'release', body must have required property 'changes', body must have required property 'release', body must have required property 'release', body must have required property 'release', body must have required property 'release', body must match exactly one schema in oneOf, body must NOT have additional properties, body must NOT have additional properties, body must NOT have additional properties, body must have required property 'changes', body must NOT have additional properties, body must NOT have additional properties, body must have required property 'changes', body must have required property 'changes', body must NOT have additional properties, body must match exactly one schema in oneOf, body must have required property 'branch', body must have required property 'status', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must match exactly one schema in oneOf, body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must match exactly one schema in oneOf, body must have required property 'location', body must match exactly one schema in oneOf, body must have required property 'security_advisory', body must have required property 'security_advisory', body must have required property 'security_advisory', body must have required property 'security_advisory', body must match exactly one schema in oneOf, body must have required property 'sponsorship', body must have required property 'sponsorship', body must have required property 'changes', body must have required property 'sponsorship', body must have required property 'changes', body must have required property 'changes', body must match exactly one schema in oneOf, body must have required property 'starred_at', body must have required property 'starred_at', body must match exactly one schema in oneOf, body must have required property 'id', body must have required property 'team', body must have required property 'team', body must have required property 'team', body must have required property 'changes', body must have required property 'team', body must match exactly one schema in oneOf, body must have required property 'team', body must NOT have additional properties, body must match exactly one schema in oneOf, body must have required property 'inputs', body must have required property 'workflow_job', body must have required property 'workflow_job', body must have required property 'workflow_job', body must have required property 'workflow_job', body must match exactly one schema in oneOf, body must have required property 'workflow', body must have required property 'workflow', body must have required property 'workflow', body must match exactly one schema in oneOf, body must match exactly one schema in oneOf"
}
What happened?
I'm using fastify with AJV with following configuration:
I need to set
removeAdditional: falsein order to pass the validation of example Pull Request Opened payload from this repository. However even with that config the real payload coming from the github does not pass the validation.Versions
Node: v20.11.0
@octokit/webhooks-schemas: v7.3.2
fastify: v4.26.1
ajv: 8.12.0
Relevant log output
{ "statusCode": 400, "code": "FST_ERR_VALIDATION", "error": "Bad Request", "message": "body must have required property 'rule', body must have required property 'rule', body must have required property 'rule', body must match exactly one schema in oneOf, body must have required property 'check_run', body must have required property 'check_run', body must have required property 'check_run', body must have required property 'check_run', body must match exactly one schema in oneOf, body must have required property 'check_suite', body must have required property 'check_suite', body must have required property 'check_suite', body must match exactly one schema in oneOf, body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must match exactly one schema in oneOf, body must have required property 'comment', body must match exactly one schema in oneOf, body must have required property 'ref', body must have required property 'ref', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must match exactly one schema in oneOf, body must have required property 'key', body must have required property 'key', body must match exactly one schema in oneOf, body must have required property 'deployment', body must match exactly one schema in oneOf, body must NOT have additional properties, body must match exactly one schema in oneOf, body must have required property 'workflow_run', body must have required property 'workflow_run', body must have required property 'environment', body must match exactly one schema in oneOf, body must have required property 'deployment_status', body must match exactly one schema in oneOf, body must have required property 'discussion', body must have required property 'changes', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'changes', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'discussion', body must have required property 'discussion', body must match exactly one schema in oneOf, body must have required property 'comment', body must have required property 'comment', body must have required property 'changes', body must match exactly one schema in oneOf, body must have required property 'forkee', body must NOT have additional properties, body must match exactly one schema in oneOf, body must have required property 'pages', body must NOT have additional properties, body must NOT have additional properties, body must NOT have additional properties, body must NOT have additional properties, body must NOT have additional properties, body must match exactly one schema in oneOf, body must have required property 'repository_selection', body must have required property 'repository_selection', body must match exactly one schema in oneOf, body must have required property 'target_type', body must match exactly one schema in oneOf, body must have required property 'issue', body must have required property 'issue', body must have required property 'changes', body must match exactly one schema in oneOf, body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'changes', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'changes', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must have required property 'issue', body must match exactly one schema in oneOf, body must have required property 'label', body must have required property 'label', body must have required property 'label', body must match exactly one schema in oneOf, body must have required property 'effective_date', body must have required property 'effective_date', body must have required property 'effective_date', body must have required property 'effective_date', body must have required property 'effective_date', body must match exactly one schema in oneOf, body must have required property 'member', body must have required property 'changes', body must have required property 'member', body must match exactly one schema in oneOf, body must have required property 'scope', body must have required property 'scope', body must match exactly one schema in oneOf, body must have required property 'merge_group', body must match exactly one schema in oneOf, body must have required property 'hook_id', body must match exactly one schema in oneOf, body must have required property 'milestone', body must have required property 'milestone', body must have required property 'milestone', body must have required property 'changes', body must have required property 'milestone', body must match exactly one schema in oneOf, body must have required property 'blocked_user', body must have required property 'blocked_user', body must match exactly one schema in oneOf, body must NOT have additional properties, body must have required property 'membership', body must have required property 'invitation', body must have required property 'membership', body must have required property 'changes', body must match exactly one schema in oneOf, body must have required property 'package', body must have required property 'package', body must match exactly one schema in oneOf, body must have required property 'id', body must have required property 'zen', body must have required property 'project', body must have required property 'project', body must have required property 'project', body must have required property 'project', body must have required property 'project', body must match exactly one schema in oneOf, body must have required property 'changes', body must have required property 'project_card', body must have required property 'project_card', body must have required property 'changes', body must have required property 'project_card', body must match exactly one schema in oneOf, body must have required property 'project_column', body must have required property 'project_column', body must have required property 'changes', body must have required property 'project_column', body must match exactly one schema in oneOf, body must have required property 'changes', body must have required property 'changes', body must have required property 'projects_v2_item', body must have required property 'projects_v2_item', body must have required property 'changes', body must have required property 'changes', body must have required property 'changes', body must match exactly one schema in oneOf, body must NOT have additional properties, body must have required property 'assignee', body must have required property 'reason', body must have required property 'reason', body/action must be equal to one of the allowed values, body/action must be equal to one of the allowed values, body must have required property 'milestone', body must have required property 'reason', body must have required property 'changes', body/action must be equal to one of the allowed values, body must have required property 'label', body/action must be equal to one of the allowed values, body must have required property 'milestone', body/repository must NOT have additional properties, body/action must be equal to one of the allowed values, body/action must be equal to one of the allowed values, body must have required property 'requested_reviewer', body must have required property 'requested_team', body must match exactly one schema in oneOf, body must have required property 'requested_reviewer', body must have required property 'requested_team', body must match exactly one schema in oneOf, body must have required property 'before', body must have required property 'assignee', body must have required property 'label', body/action must be equal to one of the allowed values, body must match exactly one schema in oneOf, body must have required property 'review', body must have required property 'changes', body must have required property 'review', body must match exactly one schema in oneOf, body must have required property 'comment', body must have required property 'comment', body must have required property 'changes', body must match exactly one schema in oneOf, body must have required property 'thread', body must have required property 'thread', body must match exactly one schema in oneOf, body must have required property 'ref', body must have required property 'registry_package', body must have required property 'registry_package', body must match exactly one schema in oneOf, body must have required property 'release', body must have required property 'release', body must have required property 'changes', body must have required property 'release', body must have required property 'release', body must have required property 'release', body must have required property 'release', body must match exactly one schema in oneOf, body must NOT have additional properties, body must NOT have additional properties, body must NOT have additional properties, body must have required property 'changes', body must NOT have additional properties, body must NOT have additional properties, body must have required property 'changes', body must have required property 'changes', body must NOT have additional properties, body must match exactly one schema in oneOf, body must have required property 'branch', body must have required property 'status', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must match exactly one schema in oneOf, body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must have required property 'alert', body must match exactly one schema in oneOf, body must have required property 'location', body must match exactly one schema in oneOf, body must have required property 'security_advisory', body must have required property 'security_advisory', body must have required property 'security_advisory', body must have required property 'security_advisory', body must match exactly one schema in oneOf, body must have required property 'sponsorship', body must have required property 'sponsorship', body must have required property 'changes', body must have required property 'sponsorship', body must have required property 'changes', body must have required property 'changes', body must match exactly one schema in oneOf, body must have required property 'starred_at', body must have required property 'starred_at', body must match exactly one schema in oneOf, body must have required property 'id', body must have required property 'team', body must have required property 'team', body must have required property 'team', body must have required property 'changes', body must have required property 'team', body must match exactly one schema in oneOf, body must have required property 'team', body must NOT have additional properties, body must match exactly one schema in oneOf, body must have required property 'inputs', body must have required property 'workflow_job', body must have required property 'workflow_job', body must have required property 'workflow_job', body must have required property 'workflow_job', body must match exactly one schema in oneOf, body must have required property 'workflow', body must have required property 'workflow', body must have required property 'workflow', body must match exactly one schema in oneOf, body must match exactly one schema in oneOf" }Code of Conduct