Issue
I use Profiling on a Node.js / TypeScript backend. In the profiler, many frames show as "fulfilled" or "__awaiter" instead of my application function names.
Applies To
All SaaS Customers and Self-Hosted Users
@sentry/nodewith@sentry/profiling-nodeNode.js / Express / TypeScript backends
Profiling
Resolution
Those frame names are expected for async TypeScript/Node code. They are not missing symbols from your app source tree.
"__awaiter"comes from TypeScript’s async/await helper when the compiler downlevels async functions."fulfilled"comes from V8’s Promise / async scheduling. Async work is not one continuous stack, so samples often disconnect at that frame.
What to do:
Use the aggregate flamegraph and focus on frames with a high sample count. Optimizing those functions still improves runtime, even when the chronological async path is hard to read.
Upload source maps for your Node build so remaining frames map back to your TypeScript sources where possible. See the Node.js source maps documentation.
If you see heavy
"__awaiter"noise, check your TypeScripttarget. Compiling to a target that keeps native async/await (for example ES2017 or newer) reduces__awaiterhelpers. This does not remove"fulfilled"frames.
This is a platform limitation, not a misconfigured Sentry project. For more background, see the Profiling discussion on GitHub issue 73234. For setup, see Node.js Profiling.
