Skip to content

Fix; renderComponent error: 'attempted to close a tracking frame, but one was not open'#20995

Open
NullVoxPopuli wants to merge 5 commits intoemberjs:mainfrom
NullVoxPopuli:nvp/renderComponent/syscall-error
Open

Fix; renderComponent error: 'attempted to close a tracking frame, but one was not open'#20995
NullVoxPopuli wants to merge 5 commits intoemberjs:mainfrom
NullVoxPopuli:nvp/renderComponent/syscall-error

Conversation

@NullVoxPopuli
Copy link
Contributor

@NullVoxPopuli NullVoxPopuli commented Oct 30, 2025

This happens when:

  • renderComponent is called twice, sequentially
  • the renderedComponent calls another component
  • and the rendered component calls a helper
  • the owner is passed to renderComponent

these 4 things are required to reproduce the error

  • not passing the owner results in a passing test
  • not invoking a child component results in a passing test
  • not invoking a helper results in a passing test

@github-actions
Copy link
Contributor

github-actions bot commented Oct 30, 2025

Estimated Asset Sizes

Diff

--- main/out.txt	2026-01-30 19:10:24.000000000 +0000
+++ pr/./pr-21730794287/out.txt	2026-02-05 22:24:50.000000000 +0000
@@ -1,34 +1,34 @@
 ╔═══════╤═══════════╤═══════════╗
 ║       │ Min       │ Gzip      ║
 ╟───────┼───────────┼───────────╢
-║ Total │ 352.26 KB │ 203.67 KB ║
+║ Total │ 352.26 KB │ 203.58 KB ║
 ╚═══════╧═══════════╧═══════════╝
 
 ╔══════════════════════╤═══════════╤═══════════╗
 ║ @ember/*             │ Min       │ Gzip      ║
 ╟──────────────────────┼───────────┼───────────╢
-║ Total                │ 313.87 KB │ 181.82 KB ║
+║ Total                │ 313.87 KB │ 181.74 KB ║
 ╟──────────────────────┼───────────┼───────────╢
-║ -internals           │ 36.68 KB  │ 26.02 KB  ║
-║ application          │ 13.24 KB  │ 8.03 KB   ║
+║ -internals           │ 36.68 KB  │ 26.01 KB  ║
+║ application          │ 13.24 KB  │ 7.94 KB   ║
 ║ array                │ 13.05 KB  │ 7.54 KB   ║
 ║ canary-features      │ 304 B     │ 419 B     ║
-║ component            │ 2.05 KB   │ 1.56 KB   ║
+║ component            │ 2.05 KB   │ 1.58 KB   ║
 ║ controller           │ 1.96 KB   │ 1.45 KB   ║
 ║ debug                │ 11.73 KB  │ 8.14 KB   ║
 ║ deprecated-features  │ 31 B      │ 77 B      ║
 ║ destroyable          │ 561 B     │ 383 B     ║
 ║ enumerable           │ 259 B     │ 387 B     ║
-║ helper               │ 1.08 KB   │ 805 B     ║
+║ helper               │ 1.08 KB   │ 799 B     ║
 ║ instrumentation      │ 2.43 KB   │ 1.78 KB   ║
-║ modifier             │ 1.22 KB   │ 1011 B    ║
+║ modifier             │ 1.22 KB   │ 979 B     ║
 ║ object               │ 35.98 KB  │ 22.1 KB   ║
 ║ owner                │ 159 B     │ 178 B     ║
-║ renderer             │ 630 B     │ 508 B     ║
-║ routing              │ 59.37 KB  │ 33.92 KB  ║
+║ renderer             │ 630 B     │ 513 B     ║
+║ routing              │ 59.37 KB  │ 33.93 KB  ║
 ║ runloop              │ 2.36 KB   │ 1.5 KB    ║
 ║ service              │ 1 KB      │ 858 B     ║
-║ template             │ 654 B     │ 523 B     ║
+║ template             │ 654 B     │ 537 B     ║
 ║ template-compilation │ 429 B     │ 366 B     ║
 ║ template-compiler    │ 123.33 KB │ 59.68 KB  ║
 ║ template-factory     │ 370 B     │ 351 B     ║

Details

This PRmain
╔═══════╤═══════════╤═══════════╗
║       │ Min       │ Gzip      ║
╟───────┼───────────┼───────────╢
║ Total │ 352.26 KB │ 203.58 KB ║
╚═══════╧═══════════╧═══════════╝

╔══════════════════════╤═══════════╤═══════════╗
║ @ember/*             │ Min       │ Gzip      ║
╟──────────────────────┼───────────┼───────────╢
║ Total                │ 313.87 KB │ 181.74 KB ║
╟──────────────────────┼───────────┼───────────╢
║ -internals           │ 36.68 KB  │ 26.01 KB  ║
║ application          │ 13.24 KB  │ 7.94 KB   ║
║ array                │ 13.05 KB  │ 7.54 KB   ║
║ canary-features      │ 304 B     │ 419 B     ║
║ component            │ 2.05 KB   │ 1.58 KB   ║
║ controller           │ 1.96 KB   │ 1.45 KB   ║
║ debug                │ 11.73 KB  │ 8.14 KB   ║
║ deprecated-features  │ 31 B      │ 77 B      ║
║ destroyable          │ 561 B     │ 383 B     ║
║ enumerable           │ 259 B     │ 387 B     ║
║ helper               │ 1.08 KB   │ 799 B     ║
║ instrumentation      │ 2.43 KB   │ 1.78 KB   ║
║ modifier             │ 1.22 KB   │ 979 B     ║
║ object               │ 35.98 KB  │ 22.1 KB   ║
║ owner                │ 159 B     │ 178 B     ║
║ renderer             │ 630 B     │ 513 B     ║
║ routing              │ 59.37 KB  │ 33.93 KB  ║
║ runloop              │ 2.36 KB   │ 1.5 KB    ║
║ service              │ 1 KB      │ 858 B     ║
║ template             │ 654 B     │ 537 B     ║
║ template-compilation │ 429 B     │ 366 B     ║
║ template-compiler    │ 123.33 KB │ 59.68 KB  ║
║ template-factory     │ 370 B     │ 351 B     ║
║ test                 │ 923 B     │ 627 B     ║
║ utils                │ 4.11 KB   │ 3.63 KB   ║
║ version              │ 55 B      │ 131 B     ║
╚══════════════════════╧═══════════╧═══════════╝

╔═════════════════╤══════════╤══════════╗
║ @glimmer/*      │ Min      │ Gzip     ║
╟─────────────────┼──────────┼──────────╢
║ Total           │ 38.38 KB │ 21.85 KB ║
╟─────────────────┼──────────┼──────────╢
║ destroyable     │ 2.78 KB  │ 1.38 KB  ║
║ encoder         │ 81 B     │ 171 B    ║
║ env             │ 38 B     │ 87 B     ║
║ global-context  │ 886 B    │ 545 B    ║
║ manager         │ 977 B    │ 627 B    ║
║ node            │ 175 B    │ 244 B    ║
║ opcode-compiler │ 1.11 KB  │ 905 B    ║
║ owner           │ 159 B    │ 202 B    ║
║ program         │ 252 B    │ 333 B    ║
║ reference       │ 548 B    │ 544 B    ║
║ runtime         │ 10.32 KB │ 5.3 KB   ║
║ tracking        │ 1.34 KB  │ 1.18 KB  ║
║ util            │ 1.94 KB  │ 1.6 KB   ║
║ validator       │ 15.53 KB │ 6.9 KB   ║
║ vm              │ 495 B    │ 569 B    ║
║ wire-format     │ 1.84 KB  │ 1.35 KB  ║
╚═════════════════╧══════════╧══════════╝
╔═══════╤═══════════╤═══════════╗
║       │ Min       │ Gzip      ║
╟───────┼───────────┼───────────╢
║ Total │ 352.26 KB │ 203.67 KB ║
╚═══════╧═══════════╧═══════════╝

╔══════════════════════╤═══════════╤═══════════╗
║ @ember/*             │ Min       │ Gzip      ║
╟──────────────────────┼───────────┼───────────╢
║ Total                │ 313.87 KB │ 181.82 KB ║
╟──────────────────────┼───────────┼───────────╢
║ -internals           │ 36.68 KB  │ 26.02 KB  ║
║ application          │ 13.24 KB  │ 8.03 KB   ║
║ array                │ 13.05 KB  │ 7.54 KB   ║
║ canary-features      │ 304 B     │ 419 B     ║
║ component            │ 2.05 KB   │ 1.56 KB   ║
║ controller           │ 1.96 KB   │ 1.45 KB   ║
║ debug                │ 11.73 KB  │ 8.14 KB   ║
║ deprecated-features  │ 31 B      │ 77 B      ║
║ destroyable          │ 561 B     │ 383 B     ║
║ enumerable           │ 259 B     │ 387 B     ║
║ helper               │ 1.08 KB   │ 805 B     ║
║ instrumentation      │ 2.43 KB   │ 1.78 KB   ║
║ modifier             │ 1.22 KB   │ 1011 B    ║
║ object               │ 35.98 KB  │ 22.1 KB   ║
║ owner                │ 159 B     │ 178 B     ║
║ renderer             │ 630 B     │ 508 B     ║
║ routing              │ 59.37 KB  │ 33.92 KB  ║
║ runloop              │ 2.36 KB   │ 1.5 KB    ║
║ service              │ 1 KB      │ 858 B     ║
║ template             │ 654 B     │ 523 B     ║
║ template-compilation │ 429 B     │ 366 B     ║
║ template-compiler    │ 123.33 KB │ 59.68 KB  ║
║ template-factory     │ 370 B     │ 351 B     ║
║ test                 │ 923 B     │ 627 B     ║
║ utils                │ 4.11 KB   │ 3.63 KB   ║
║ version              │ 55 B      │ 131 B     ║
╚══════════════════════╧═══════════╧═══════════╝

╔═════════════════╤══════════╤══════════╗
║ @glimmer/*      │ Min      │ Gzip     ║
╟─────────────────┼──────────┼──────────╢
║ Total           │ 38.38 KB │ 21.85 KB ║
╟─────────────────┼──────────┼──────────╢
║ destroyable     │ 2.78 KB  │ 1.38 KB  ║
║ encoder         │ 81 B     │ 171 B    ║
║ env             │ 38 B     │ 87 B     ║
║ global-context  │ 886 B    │ 545 B    ║
║ manager         │ 977 B    │ 627 B    ║
║ node            │ 175 B    │ 244 B    ║
║ opcode-compiler │ 1.11 KB  │ 905 B    ║
║ owner           │ 159 B    │ 202 B    ║
║ program         │ 252 B    │ 333 B    ║
║ reference       │ 548 B    │ 544 B    ║
║ runtime         │ 10.32 KB │ 5.3 KB   ║
║ tracking        │ 1.34 KB  │ 1.18 KB  ║
║ util            │ 1.94 KB  │ 1.6 KB   ║
║ validator       │ 15.53 KB │ 6.9 KB   ║
║ vm              │ 495 B    │ 569 B    ║
║ wire-format     │ 1.84 KB  │ 1.35 KB  ║
╚═════════════════╧══════════╧══════════╝

@NullVoxPopuli NullVoxPopuli force-pushed the nvp/renderComponent/syscall-error branch from 8693073 to 2cf4b1c Compare February 5, 2026 22:12
@NullVoxPopuli NullVoxPopuli marked this pull request as ready for review February 5, 2026 22:28
@NullVoxPopuli NullVoxPopuli changed the title Reproduce renderComponent error: 'attempted to close a tracking frame, but one was not open' Fix; renderComponent error: 'attempted to close a tracking frame, but one was not open' Feb 5, 2026
`<div id="a"></div><br>`,
`<div id="b"></div>`,
`{{render A 'a' owner}}`,
`{{render B 'b' owner}}`,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`{{render B 'b' owner}}`,
`{{render B 'b' owner}}`,
`{{render B 'b'}}`,
`{{render A 'a'}}`,

what happens when you mix owner and non owner calls?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants