facebook/react · error · Error
getProfilingData not supported by this renderer
Error message
getProfilingData not supported by this renderer
What it means
The Flight backend wraps the server-components (Flight/RSC) graph and implements the shared RendererInterface mostly with stubs, because that graph is not inspectable like a client tree. getProfilingData() deliberately throws: profiling is implemented only by the Fiber renderer. agent.js:560 forwards the frontend's profilingData request to any renderer id, so requesting profiling data from the Flight renderer throws instead of returning data.
Source
Thrown at packages/react-devtools-shared/src/backend/flight/renderer.js:188
return null;
},
getSuspenseNodeIDForHostInstance() {
return null;
},
getInstanceAndStyle() {
return {
instance: null,
style: null,
};
},
getOwnersList() {
return null;
},
getPathForElement() {
return null;
},
getProfilingData() {
throw new Error('getProfilingData not supported by this renderer');
},
handleCommitFiberRoot() {},
handleCommitFiberUnmount() {},
handlePostCommitFiberRoot() {},
hasElementWithId() {
return false;
},
inspectElement(
requestID: number,
id: number,
path: Array<string | number> | null,
) {
return {
id,
responseID: requestID,
type: 'not-found',
};
},View on GitHub (pinned to eafeac097b)
Solutions
- Profile the client (Fiber) renderer - select it in the renderer dropdown instead of the Flight/Server Components renderer.
- In custom frontends, gate profiling start/stop/export on the renderer's capabilities (bundleType/kind or a supportsProfiling flag) before sending getProfilingData for a rendererID.
- Update DevTools - newer agent code guards unsupported renderers on this path.
- If stock DevTools throws here, file an issue naming the renderer kinds attached.
Example fix
// before (agent-style forwarding, throws for flight)
bridge.send('profilingData', renderers[rendererID].getProfilingData());
// after - only request data from renderers that support profiling
const renderer = renderers[rendererID];
if (renderer != null && renderer.bundleType !== 'flight') {
bridge.send('profilingData', renderer.getProfilingData());
} Defensive patterns
Strategy: validation
Validate before calling
// in a custom frontend/agent: gate profiling export on renderer capability
const renderer = renderers[rendererID];
if (renderer != null && supportsProfiling(renderer)) {
bridge.send('profilingData', renderer.getProfilingData());
}
function supportsProfiling(renderer) {
// flight backends only implement stubs; only fiber renderers record profiles
return renderer.bundleType !== 'flight' && renderer.supportsProfiling !== false;
} Prevention
- Profile the client (Fiber) renderer; the Flight/Server Components graph has no profiling data by design.
- Gate Profiler start/stop/export UI per renderer kind before sending requests.
- Update DevTools - newer agent code guards unsupported renderers on this path.
When it happens
Trigger: Stopping a profiling session or exporting profile data while the rendererID in play belongs to the Flight renderer - apps with server-component graphs (React Native/IO, RSC-heavy web apps) where a flight renderer registers alongside the client renderer and the frontend requests its profiling data.
Common situations: Selecting the server-components renderer in the Profiler; custom frontends that do not gate Profiler tabs per renderer kind; mixed client+flight renderers on one page.
Related errors
- Expected the root instance to already exist when starting pr
- 417
- Cannot not suspend ID '${suspendedSet[i]}'.
- Profiling data cannot be updated while profiling is in progr
- Invalid reference.
AI-assisted analysis of facebook/react@eafeac097b (2026-08-21).
Data as JSON: /api/errors/6106231e81f7cb51.
Report an issue: GitHub.