It took me forever to figure this out, but I've definitely repro'd.
Using:
VSCode Version: 1.107.1 (user setup)
Commit: 994fd12f8d3a5aa16f17d42c041e5809167e845a
Date: 2025-12-17T14:15:14.850Z
Electron: 39.2.3
ElectronBuildId: 12895514
Chromium: 142.0.7444.175
Node.js: 22.21.1
V8: 14.2.231.21-electron.0
OS: Windows_NT x64 10.0.26100
archicionado.cornifer v 1.2.2
Description
Notating a relationsnip with children using a curly-brace syntax seems to cause the provider to crash, which blanks out the Outline panel as well as the Breadcrumb line.
Notes
According to https://docs.structurizr.com/dsl/language#relationship, the curly-brace syntax used to add children to a relationship is allowed for explicit relationships, but my experiments show that Structurizr Lite (not the vNext) will honor them for implicit relationships as well.
When I add curly-brace syntax to a relationship, the VSCode Extension host reports lines like the following in the log:
2026-01-05 14:47:49.265 [error] [archicionado.cornifer] provider FAILED
2026-01-05 14:47:49.265 [error] TypeError: Cannot read properties of undefined (reading 'children')
at Object.provideDocumentSymbols (c:\Users\AMcBee\.vscode\extensions\archicionado.cornifer-1.2.2\dist\extension.js:1:91656)
at RN.provideDocumentSymbols (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:144:140615)
at file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:144:170144
at si.G (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:144:169435)
at si.$provideDocumentSymbols (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:144:170132)
at l5.S (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:29:125043)
at l5.Q (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:29:124823)
at l5.M (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:29:123874)
at l5.L (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:29:123017)
at _d.value (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:29:121814)
at I.C (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:27:2328)
at I.fire (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:27:2546)
at Vo.fire (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:29:9454)
at _d.value (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:404:9330)
at I.C (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:27:2328)
at I.fire (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:27:2546)
at Vo.fire (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:29:9454)
at MessagePortMain.<anonymous> (file:///c:/Users/AMcBee/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:404:7564)
at MessagePortMain.emit (node:events:519:28)
at MessagePortMain._internalPort.emit (node:electron/js2c/utility_init:2:2949)
Here's the DSL I used to repro, which displays correctly in Structurizr Lite (using the structurizr/lite:latest Docker image from DockerHub):
Implicit relationship:
workspace "name" "description" {
!identifiers hierarchical
!impliedRelationships false
model {
someone = person "someone" "description" "tags-person"
ss = softwareSystem "ssName" "description" "tags-ss" {
ctr = container "ctrName" "description" "technology" "tags-ctr" {
someone -> ctr "uses" "personA" "personB"
-> someone "is used by" "personA" {
tags "personB"
}
}
}
}
views {
container ss "ssCtr" "description" {
include *
include *->*
}
}
}
Explicit relationship:
workspace "name" "description" {
!identifiers hierarchical
!impliedRelationships false
model {
someone = person "someone" "description" "tags-person"
ss = softwareSystem "ssName" "description" "tags-ss" {
ctr = container "ctrName" "description" "technology" "tags-ctr" {
}
}
someone -> ss.ctr "uses" "personA" "personB"
ss.ctr -> someone "is used by" "personA" {
tags "personB"
}
}
views {
container ss "ssCtr" "description" {
include *
include *->*
}
}
}
In both cases, commenting out the curly-brace notation on the relationships (the "is used by" relationships) will allow the provider to work correctly.
It took me forever to figure this out, but I've definitely repro'd.
Using:
Description
Notating a relationsnip with children using a curly-brace syntax seems to cause the provider to crash, which blanks out the Outline panel as well as the Breadcrumb line.
Notes
According to https://docs.structurizr.com/dsl/language#relationship, the curly-brace syntax used to add children to a relationship is allowed for explicit relationships, but my experiments show that Structurizr Lite (not the vNext) will honor them for implicit relationships as well.
When I add curly-brace syntax to a relationship, the VSCode Extension host reports lines like the following in the log:
Here's the DSL I used to repro, which displays correctly in Structurizr Lite (using the
structurizr/lite:latestDocker image from DockerHub):Implicit relationship:
Explicit relationship:
In both cases, commenting out the curly-brace notation on the relationships (the "is used by" relationships) will allow the provider to work correctly.