react/react · warning · Error

getProfilingData not supported by this renderer

Error message

getProfilingData not supported by this renderer

What it means

Legacy (React v15) renderer stub for getProfilingData. The v15 reconciler has no fiber commit timeline, so DevTools cannot record or export a profile. The stub throws to signal that profiling is unavailable on this renderer. (Note startProfiling/stopProfiling are deliberately no-ops to avoid breaking multi-root v15+v16 setups.)

Source

Thrown at packages/react-devtools-shared/src/backend/legacy/renderer.js:1189

            const element = internalInstance._currentElement;
            internalInstance._currentElement = {
              ...element,
              props: copyWithSet(element.props, path, value),
            };
            forceUpdate(publicInstance);
            break;
          case 'state':
            setInObject(publicInstance.state, path, value);
            forceUpdate(publicInstance);
            break;
        }
      }
    }
  }

  // v16+ only features
  const getProfilingData = () => {
    throw new Error('getProfilingData not supported by this renderer');
  };
  const handleCommitFiberRoot = () => {
    throw new Error('handleCommitFiberRoot not supported by this renderer');
  };
  const handleCommitFiberUnmount = () => {
    throw new Error('handleCommitFiberUnmount not supported by this renderer');
  };
  const handlePostCommitFiberRoot = () => {
    throw new Error('handlePostCommitFiberRoot not supported by this renderer');
  };
  const overrideError = () => {
    throw new Error('overrideError not supported by this renderer');
  };
  const overrideSuspense = () => {
    throw new Error('overrideSuspense not supported by this renderer');
  };
  const overrideSuspenseMilestone = () => {
    throw new Error('overrideSuspenseMilestone not supported by this renderer');

View on GitHub (pinned to 22e4f993c7)

Solutions

  1. Profile a React 16+ (fiber) root instead — v15 is not profileable.
  2. Upgrade the inspected app to React 16+ to enable the Profiler tab.
  3. On mixed-version pages, attach profiling to the v16+ renderer only.
  4. Treat this as expected unavailability rather than a bug.
Defensive patterns

Strategy: validation

Validate before calling

function isProfileable(renderer) {
  // Legacy v15 renderer cannot profile; only fiber (v16+) renderers can.
  return Boolean(renderer && typeof renderer.getProfilingData === 'function' &&
    renderer.findHostInstancesForElementID); // present on fiber renderer, not legacy
}

if (isProfileable(renderer)) {
  const data = renderer.getProfilingData();
}

Type guard

function isFiberRenderer(renderer) {
  return Boolean(renderer && typeof renderer.handleCommitFiberRoot === 'function' &&
    renderer.findHostInstancesForElementID);
}

Prevention

When it happens

Trigger: DevTools tries to export profiling data and the call resolves to the legacy v15 renderer's getProfilingData stub.

Common situations: Profiling a React 15 app, or a mixed v15/v16 page where the profiling request reaches the v15 renderer; DevTools extension version expecting a fiber renderer but only finding a legacy one.

Related errors


AI-assisted analysis of react/react@22e4f993c7 (2026-08-12). Data as JSON: /api/errors/f740a5a3eeee02cd. Report an issue: GitHub.