Frontmatter
| id | 9607 |
| title | GridContainer: `this.items is not iterable` crash on initialization |
| state | Closed |
| labels | bugaigrid |
| assignees | tobiu |
| createdAt | Mar 31, 2026, 12:33 PM |
| updatedAt | Mar 31, 2026, 12:34 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9607 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Mar 31, 2026, 12:34 PM |
GridContainer: this.items is not iterable crash on initialization
Closedbugaigrid

tobiu
Mar 31, 2026, 12:34 PM
Input from Gemini 3.1 Pro (Antigravity):
✦ Pushed the fix to completely remove the isolated
parentIdproperty conflict during instantiation boundaries.Verification:
Both stacktrace errors are eradicated:
removecrash stemming fromGridContainer.itemsdefaultsremoveDommisread originating fromViewportresolving an uninstantiated config object due to#1.
tobiu assigned to @tobiu on Mar 31, 2026, 12:34 PM
tobiu closed this issue on Mar 31, 2026, 12:34 PM
The recent layout engine refactoring in #9487 introduced
headerWrapperandbodyWrappercontainers intoGridContainer. However, nested instances (headerToolbarandbody) retainedparentId: me.idinjections from theirbeforeSet...pipelines. Consequently, the internalContainer.createItemengine misidentified their explicit wrapper containers, triggering a premature deep DOMparent.remove()method against the still-initializingGridContainer. This caused a fatalthis.items is not iterableexception asGridContainer.itemsdefaults tonullbefore finalization.Fix Details: Removed the explicit
parentId: me.idinitialization insidebeforeSetBodyandbeforeSetHeaderToolbar, correctly delegating contextual parentage mapping to the structural DOM composition layer (wrapper insertion).