[Bug] Notion node validator false positive: required property 'title' reported empty when set via expression (regression 2.69.2 → 2.72.0)
Summary
Since 2.72.0, workflow validation reports a false positive on the Notion node
(n8n-nodes-base.notion, typeVersion: 2.2, resource: databasePage): a required
title property that is set — via an n8n expression — is reported as empty.
<node>: required property 'title' cannot be empty
The same workflow validates clean on 2.69.2.
Reproduction
Validate this workflow with validate_workflow:
{
"name": "notion-title-expression-repro",
"nodes": [
{ "parameters": {}, "id": "00000000-1111-2222-3333-444444444444",
"name": "Manual Trigger", "type": "n8n-nodes-base.manualTrigger",
"position": [0, 0], "typeVersion": 1 },
{ "parameters": {
"resource": "databasePage",
"databaseId": { "__rl": true, "mode": "list",
"value": "00000000-0000-0000-0000-000000000000",
"cachedResultName": "example-db" },
"propertiesUi": { "propertyValues": [
{ "key": "URL|url", "urlValue": "={{ 'https://example.com' + $json.path }}" },
{ "key": "title|title", "title": "={{ $json.title }}" },
{ "key": "abstract|rich_text", "textContent": "={{ $json.abstract }}" }
] },
"options": {} },
"id": "11111111-2222-3333-4444-555555555555",
"name": "Store Page", "type": "n8n-nodes-base.notion",
"position": [220, 0], "typeVersion": 2.2 }
],
"connections": { "Manual Trigger": { "main": [[{ "node": "Store Page", "type": "main", "index": 0 }]] } }
}
Expected (and what 2.69.2 returns): valid: true, errorCount: 0.
Actual (2.72.0 and later): one error, required property 'title' cannot be empty.
Which versions
An automated nightly gate validates our whole workflow set against each new image before promoting it. Verdicts for the affected workflow:
| Version | Verdict |
|---|---|
| 2.68.4, 2.69.0, 2.69.2 | green |
| 2.72.0, 2.73.0, 2.74.1, 2.75.1 | red — this error |
So the regression lands between 2.69.2 and 2.72.0 (we never tested 2.70.x/2.71.x).
Nothing changed on our side: the same stored workflow flips verdict with the image alone.
What narrows it down
In the same node, two other property types also hold expressions and are not
flagged — only title is:
| Property | Value field | Flagged? |
|---|---|---|
URL|url |
urlValue |
no |
abstract|rich_text |
textContent |
no |
title|title |
title |
yes |
So this does not look like a blanket rejection of expression values, but something
specific to how the required title property is read. Note that each Notion property
type stores its value under a different key (urlValue, textContent, title, date…).
Minor, possibly related: the error message lower-cases the node name
(store abstract notion for a node actually named Store Abstract Notion).
Impact
We hold at 2.69.2 because our promotion gate treats a new validation error as a
regression, and we would rather not promote a validator that reports a healthy
workflow as broken. Happy to run any patch or debug build against the same set.
Source: czlonkowski/n8n-mcp