Ok thanks for reply. Palette manager shows @gregoriusrippenstein/node-red-contrib-validation-and-documentation.
Now I have v0.2.1. I used to have 0.1.2 last year. Do you get exceptions? I don't. Example flow:
[{"id":"11d69aa45594c346","type":"JsonSchemaValidatorWithDocu","z":"098301557647add6","name":"no output exception nor output invalid","property":"foo","propertyType":"msg","checkentireobject":false,"func":"{\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"bar\"\n ],\n \"properties\": {\n \"bar\": {\n \"type\": \"string\"\n }\n }\n}","schematitle":"","strictMode":true,"removeDollarSchema":true,"sendOnInvalid":false,"x":690,"y":180,"wires":[["8dbe7a8ee1477613"]],"info":"## Untitled object in undefined Type\n\n`object` ([Details](definition.md))\n\n# Untitled object in undefined Properties\n\n| Property | Type | Required | Nullable | Defined by |\n| :-------------------- | :------- | :------- | :------------- | :-------------------------------------------------------------------------------- |\n| [params](#params) | `object` | Required | cannot be null | [Untitled schema](definition-properties-params.md \"undefined#/properties/params\") |\n| Additional Properties | Any | Optional | can be null | |\n\n## params\n\n\n\n`params`\n\n* is required\n\n* Type: `object` ([Details](definition-properties-params.md))\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params.md \"undefined#/properties/params\")\n\n### params Type\n\n`object` ([Details](definition-properties-params.md))\n\n## Additional Properties\n\nAdditional properties are allowed and do not have to follow a specific schema\n\n---\n## params Type\n\n`object` ([Details](definition-properties-params.md))\n\n# params Properties\n\n| Property | Type | Required | Nullable | Defined by |\n| :------------ | :------- | :------- | :------------- | :---------------------------------------------------------------------------------------------------------------- |\n| [data](#data) | `object` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data.md \"undefined#/properties/params/properties/data\") |\n\n## data\n\n\n\n`data`\n\n* is required\n\n* Type: `object` ([Details](definition-properties-params-properties-data.md))\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data.md \"undefined#/properties/params/properties/data\")\n\n### data Type\n\n`object` ([Details](definition-properties-params-properties-data.md))\n\n---\n## data Type\n\n`object` ([Details](definition-properties-params-properties-data.md))\n\n# data Properties\n\n| Property | Type | Required | Nullable | Defined by |\n| :---------------------- | :------- | :------- | :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [buildings](#buildings) | `array` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-buildings.md \"undefined#/properties/params/properties/data/properties/buildings\") |\n| [range](#range) | `object` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-range.md \"undefined#/properties/params/properties/data/properties/range\") |\n| [timezone](#timezone) | `string` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-timezone.md \"undefined#/properties/params/properties/data/properties/timezone\") |\n\n## buildings\n\n\n\n`buildings`\n\n* is required\n\n* Type: `object[]` ([Details](definition-properties-params-properties-data-properties-buildings-items.md))\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-buildings.md \"undefined#/properties/params/properties/data/properties/buildings\")\n\n### buildings Type\n\n`object[]` ([Details](definition-properties-params-properties-data-properties-buildings-items.md))\n\n## range\n\n\n\n`range`\n\n* is required\n\n* Type: `object` ([Details](definition-properties-params-properties-data-properties-range.md))\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-range.md \"undefined#/properties/params/properties/data/properties/range\")\n\n### range Type\n\n`object` ([Details](definition-properties-params-properties-data-properties-range.md))\n\n## timezone\n\n\n\n`timezone`\n\n* is required\n\n* Type: `string`\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-timezone.md \"undefined#/properties/params/properties/data/properties/timezone\")\n\n### timezone Type\n\n`string`\n\n---\n## buildings Type\n\n`object[]` ([Details](definition-properties-params-properties-data-properties-buildings-items.md))\n\n---\n## items Type\n\n`object` ([Details](definition-properties-params-properties-data-properties-buildings-items.md))\n\n# items Properties\n\n| Property | Type | Required | Nullable | Defined by |\n| :-------------- | :------- | :------- | :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [id](#id) | `string` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-buildings-items-properties-id.md \"undefined#/properties/params/properties/data/properties/buildings/items/properties/id\") |\n| [name](#name) | `string` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-buildings-items-properties-name.md \"undefined#/properties/params/properties/data/properties/buildings/items/properties/name\") |\n| [label](#label) | `string` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-buildings-items-properties-label.md \"undefined#/properties/params/properties/data/properties/buildings/items/properties/label\") |\n\n## id\n\n\n\n`id`\n\n* is required\n\n* Type: `string`\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-buildings-items-properties-id.md \"undefined#/properties/params/properties/data/properties/buildings/items/properties/id\")\n\n### id Type\n\n`string`\n\n## name\n\n\n\n`name`\n\n* is required\n\n* Type: `string`\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-buildings-items-properties-name.md \"undefined#/properties/params/properties/data/properties/buildings/items/properties/name\")\n\n### name Type\n\n`string`\n\n## label\n\n\n\n`label`\n\n* is required\n\n* Type: `string`\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-buildings-items-properties-label.md \"undefined#/properties/params/properties/data/properties/buildings/items/properties/label\")\n\n### label Type\n\n`string`\n\n---\n## id Type\n\n`string`\n\n---\n## name Type\n\n`string`\n\n---\n## label Type\n\n`string`\n\n---\n## range Type\n\n`object` ([Details](definition-properties-params-properties-data-properties-range.md))\n\n# range Properties\n\n| Property | Type | Required | Nullable | Defined by |\n| :-------------- | :------- | :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| [start](#start) | `string` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-range-properties-start.md \"undefined#/properties/params/properties/data/properties/range/properties/start\") |\n| [stop](#stop) | `string` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-range-properties-stop.md \"undefined#/properties/params/properties/data/properties/range/properties/stop\") |\n\n## start\n\n\n\n`start`\n\n* is required\n\n* Type: `string`\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-range-properties-start.md \"undefined#/properties/params/properties/data/properties/range/properties/start\")\n\n### start Type\n\n`string`\n\n### start Constraints\n\n**pattern**: the string must match the following regular expression: \n\n```regexp\n^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$\n```\n\n[try pattern](https://regexr.com/?expression=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D-%5B0-9%5D%7B2%7DT%5B0-9%5D%7B2%7D%3A%5B0-9%5D%7B2%7D%24 \"try regular expression with regexr.com\")\n\n## stop\n\n\n\n`stop`\n\n* is required\n\n* Type: `string`\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-range-properties-stop.md \"undefined#/properties/params/properties/data/properties/range/properties/stop\")\n\n### stop Type\n\n`string`\n\n### stop Constraints\n\n**pattern**: the string must match the following regular expression: \n\n```regexp\n^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$\n```\n\n[try pattern](https://regexr.com/?expression=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D-%5B0-9%5D%7B2%7DT%5B0-9%5D%7B2%7D%3A%5B0-9%5D%7B2%7D%24 \"try regular expression with regexr.com\")\n\n---\n## start Type\n\n`string`\n\n## start Constraints\n\n**pattern**: the string must match the following regular expression: \n\n```regexp\n^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$\n```\n\n[try pattern](https://regexr.com/?expression=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D-%5B0-9%5D%7B2%7DT%5B0-9%5D%7B2%7D%3A%5B0-9%5D%7B2%7D%24 \"try regular expression with regexr.com\")\n\n---\n## stop Type\n\n`string`\n\n## stop Constraints\n\n**pattern**: the string must match the following regular expression: \n\n```regexp\n^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$\n```\n\n[try pattern](https://regexr.com/?expression=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D-%5B0-9%5D%7B2%7DT%5B0-9%5D%7B2%7D%3A%5B0-9%5D%7B2%7D%24 \"try regular expression with regexr.com\")\n\n---\n## timezone Type\n\n`string`\n"},{"id":"f8bbdea4bab60c00","type":"inject","z":"098301557647add6","name":"valid","props":[{"p":"foo.bar","v":"a","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":410,"y":180,"wires":[["11d69aa45594c346"]]},{"id":"2aff4fe560f0670a","type":"inject","z":"098301557647add6","name":"invalid","props":[{"p":"foo.bar","v":"1","vt":"num"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":410,"y":220,"wires":[["11d69aa45594c346"]]},{"id":"0b453d38f16e17a1","type":"catch","z":"098301557647add6","name":"","scope":null,"uncaught":false,"x":420,"y":340,"wires":[["fe8a0769c94c62c1"]]},{"id":"fe8a0769c94c62c1","type":"debug","z":"098301557647add6","name":"debug exception","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":620,"y":340,"wires":[]},{"id":"8dbe7a8ee1477613","type":"debug","z":"098301557647add6","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":920,"y":180,"wires":[]},{"id":"302a0ba0d3b58477","type":"JsonSchemaValidatorWithDocu","z":"098301557647add6","name":"output but no exception on invalid","property":"foo","propertyType":"msg","checkentireobject":false,"func":"{\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"bar\"\n ],\n \"properties\": {\n \"bar\": {\n \"type\": \"string\"\n }\n }\n}","schematitle":"","strictMode":true,"removeDollarSchema":true,"sendOnInvalid":true,"x":680,"y":260,"wires":[["9774f2e26d1cf4b0"]],"info":"## Untitled object in undefined Type\n\n`object` ([Details](definition.md))\n\n# Untitled object in undefined Properties\n\n| Property | Type | Required | Nullable | Defined by |\n| :-------------------- | :------- | :------- | :------------- | :-------------------------------------------------------------------------------- |\n| [params](#params) | `object` | Required | cannot be null | [Untitled schema](definition-properties-params.md \"undefined#/properties/params\") |\n| Additional Properties | Any | Optional | can be null | |\n\n## params\n\n\n\n`params`\n\n* is required\n\n* Type: `object` ([Details](definition-properties-params.md))\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params.md \"undefined#/properties/params\")\n\n### params Type\n\n`object` ([Details](definition-properties-params.md))\n\n## Additional Properties\n\nAdditional properties are allowed and do not have to follow a specific schema\n\n---\n## params Type\n\n`object` ([Details](definition-properties-params.md))\n\n# params Properties\n\n| Property | Type | Required | Nullable | Defined by |\n| :------------ | :------- | :------- | :------------- | :---------------------------------------------------------------------------------------------------------------- |\n| [data](#data) | `object` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data.md \"undefined#/properties/params/properties/data\") |\n\n## data\n\n\n\n`data`\n\n* is required\n\n* Type: `object` ([Details](definition-properties-params-properties-data.md))\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data.md \"undefined#/properties/params/properties/data\")\n\n### data Type\n\n`object` ([Details](definition-properties-params-properties-data.md))\n\n---\n## data Type\n\n`object` ([Details](definition-properties-params-properties-data.md))\n\n# data Properties\n\n| Property | Type | Required | Nullable | Defined by |\n| :---------------------- | :------- | :------- | :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [buildings](#buildings) | `array` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-buildings.md \"undefined#/properties/params/properties/data/properties/buildings\") |\n| [range](#range) | `object` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-range.md \"undefined#/properties/params/properties/data/properties/range\") |\n| [timezone](#timezone) | `string` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-timezone.md \"undefined#/properties/params/properties/data/properties/timezone\") |\n\n## buildings\n\n\n\n`buildings`\n\n* is required\n\n* Type: `object[]` ([Details](definition-properties-params-properties-data-properties-buildings-items.md))\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-buildings.md \"undefined#/properties/params/properties/data/properties/buildings\")\n\n### buildings Type\n\n`object[]` ([Details](definition-properties-params-properties-data-properties-buildings-items.md))\n\n## range\n\n\n\n`range`\n\n* is required\n\n* Type: `object` ([Details](definition-properties-params-properties-data-properties-range.md))\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-range.md \"undefined#/properties/params/properties/data/properties/range\")\n\n### range Type\n\n`object` ([Details](definition-properties-params-properties-data-properties-range.md))\n\n## timezone\n\n\n\n`timezone`\n\n* is required\n\n* Type: `string`\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-timezone.md \"undefined#/properties/params/properties/data/properties/timezone\")\n\n### timezone Type\n\n`string`\n\n---\n## buildings Type\n\n`object[]` ([Details](definition-properties-params-properties-data-properties-buildings-items.md))\n\n---\n## items Type\n\n`object` ([Details](definition-properties-params-properties-data-properties-buildings-items.md))\n\n# items Properties\n\n| Property | Type | Required | Nullable | Defined by |\n| :-------------- | :------- | :------- | :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [id](#id) | `string` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-buildings-items-properties-id.md \"undefined#/properties/params/properties/data/properties/buildings/items/properties/id\") |\n| [name](#name) | `string` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-buildings-items-properties-name.md \"undefined#/properties/params/properties/data/properties/buildings/items/properties/name\") |\n| [label](#label) | `string` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-buildings-items-properties-label.md \"undefined#/properties/params/properties/data/properties/buildings/items/properties/label\") |\n\n## id\n\n\n\n`id`\n\n* is required\n\n* Type: `string`\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-buildings-items-properties-id.md \"undefined#/properties/params/properties/data/properties/buildings/items/properties/id\")\n\n### id Type\n\n`string`\n\n## name\n\n\n\n`name`\n\n* is required\n\n* Type: `string`\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-buildings-items-properties-name.md \"undefined#/properties/params/properties/data/properties/buildings/items/properties/name\")\n\n### name Type\n\n`string`\n\n## label\n\n\n\n`label`\n\n* is required\n\n* Type: `string`\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-buildings-items-properties-label.md \"undefined#/properties/params/properties/data/properties/buildings/items/properties/label\")\n\n### label Type\n\n`string`\n\n---\n## id Type\n\n`string`\n\n---\n## name Type\n\n`string`\n\n---\n## label Type\n\n`string`\n\n---\n## range Type\n\n`object` ([Details](definition-properties-params-properties-data-properties-range.md))\n\n# range Properties\n\n| Property | Type | Required | Nullable | Defined by |\n| :-------------- | :------- | :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| [start](#start) | `string` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-range-properties-start.md \"undefined#/properties/params/properties/data/properties/range/properties/start\") |\n| [stop](#stop) | `string` | Required | cannot be null | [Untitled schema](definition-properties-params-properties-data-properties-range-properties-stop.md \"undefined#/properties/params/properties/data/properties/range/properties/stop\") |\n\n## start\n\n\n\n`start`\n\n* is required\n\n* Type: `string`\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-range-properties-start.md \"undefined#/properties/params/properties/data/properties/range/properties/start\")\n\n### start Type\n\n`string`\n\n### start Constraints\n\n**pattern**: the string must match the following regular expression: \n\n```regexp\n^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$\n```\n\n[try pattern](https://regexr.com/?expression=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D-%5B0-9%5D%7B2%7DT%5B0-9%5D%7B2%7D%3A%5B0-9%5D%7B2%7D%24 \"try regular expression with regexr.com\")\n\n## stop\n\n\n\n`stop`\n\n* is required\n\n* Type: `string`\n\n* cannot be null\n\n* defined in: [Untitled schema](definition-properties-params-properties-data-properties-range-properties-stop.md \"undefined#/properties/params/properties/data/properties/range/properties/stop\")\n\n### stop Type\n\n`string`\n\n### stop Constraints\n\n**pattern**: the string must match the following regular expression: \n\n```regexp\n^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$\n```\n\n[try pattern](https://regexr.com/?expression=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D-%5B0-9%5D%7B2%7DT%5B0-9%5D%7B2%7D%3A%5B0-9%5D%7B2%7D%24 \"try regular expression with regexr.com\")\n\n---\n## start Type\n\n`string`\n\n## start Constraints\n\n**pattern**: the string must match the following regular expression: \n\n```regexp\n^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$\n```\n\n[try pattern](https://regexr.com/?expression=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D-%5B0-9%5D%7B2%7DT%5B0-9%5D%7B2%7D%3A%5B0-9%5D%7B2%7D%24 \"try regular expression with regexr.com\")\n\n---\n## stop Type\n\n`string`\n\n## stop Constraints\n\n**pattern**: the string must match the following regular expression: \n\n```regexp\n^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$\n```\n\n[try pattern](https://regexr.com/?expression=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D-%5B0-9%5D%7B2%7DT%5B0-9%5D%7B2%7D%3A%5B0-9%5D%7B2%7D%24 \"try regular expression with regexr.com\")\n\n---\n## timezone Type\n\n`string`\n"},{"id":"a8f3f5a124949e68","type":"inject","z":"098301557647add6","name":"valid","props":[{"p":"foo.bar","v":"a","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":410,"y":260,"wires":[["302a0ba0d3b58477"]]},{"id":"be81f3cd67ce0d1f","type":"inject","z":"098301557647add6","name":"invalid","props":[{"p":"foo.bar","v":"1","vt":"num"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":410,"y":300,"wires":[["302a0ba0d3b58477"]]},{"id":"9774f2e26d1cf4b0","type":"debug","z":"098301557647add6","name":"debug 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":920,"y":260,"wires":[]},{"id":"0a1ca32476f72209","type":"global-config","env":[],"modules":{"@gregoriusrippenstein/node-red-contrib-validation-and-documentation":"0.2.1"}}]
According to the documentation it says:
Unlike the original, instead of two outputs this has only one. Previously the two outputs where used to diverge messages that where valid and those that weren't. Instead this throws an exception that can be caught if validation fails. For the author this makes more sense since a validation that fails represents an unknown state of the system, likely to cause failure - fail fast, fail early is the motto.