facebook/react · error · Error
386
386
Error message
The current renderer does not support microtasks. This error is likely caused by a bug in React. Please file an issue.
What it means
Renderers that cannot schedule microtasks re-export ReactFiberConfigWithNoMicrotasks, where scheduleMicrotask is a throwing shim and `supportsMicrotasks = false`. The reconciler uses scheduleMicrotask for microtask-scheduled work (e.g. sync retry lanes / Suspense retries); if a code path calls it without checking supportsMicrotasks, this invariant fires.
Source
Thrown at packages/react-reconciler/src/ReactFiberConfigWithNoMicrotasks.js:14
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
*/
// Renderers that don't support microtasks
// can re-export everything from this module.
function shim(...args: any): empty {
throw new Error(
'The current renderer does not support microtasks. ' +
'This error is likely caused by a bug in React. ' +
'Please file an issue.',
);
}
// Test selectors (when unsupported)
export const supportsMicrotasks = false;
export const scheduleMicrotask = shim;
View on GitHub (pinned to eafeac097b)
Solutions
- Implement scheduleMicrotask in your host config — usually `queueMicrotask` or `Promise.resolve().then(callback)`.
- Verify the runtime environment actually supports microtasks before re-exporting the NoMicrotasks config.
- If supportsMicrotasks was true and it still threw, file an issue — the reconciler should gate on the flag.
Example fix
// before: hostconfig re-exports the throwing shim
export {scheduleMicrotask} from 'react-reconciler/src/ReactFiberConfigWithNoMicrotasks';
// after: implement it
export const supportsMicrotasks = true;
export function scheduleMicrotask(callback) {
Promise.resolve().then(callback);
} Defensive patterns
Strategy: validation
Validate before calling
// Custom renderer config: only claim no-microtasks where none exist
const hasMicrotasks = typeof queueMicrotask === 'function' || typeof Promise === 'function';
export {scheduleMicrotask} from hasMicrotasks
? './microtasksImpl'
: 'react-reconciler/src/ReactFiberConfigWithNoMicrotasks'; Prevention
- Implement scheduleMicrotask via Promise.resolve().then unless the target truly lacks microtasks
- Test suspense/retry paths against your custom host config before shipping
- Gate Suspense-heavy features in environments without microtask support
When it happens
Trigger: A custom renderer's host config re-exports NoMicrotasks while the runtime hits a microtask-scheduling path — e.g. Suspense/retry scheduling in an environment where the renderer declined microtask support.
Common situations: Custom renderer authors copying a no-microtasks config (targeting environments without Promise/microtasks) while the app uses Suspense or sync-update features that schedule microtasks.
Related errors
AI-assisted analysis of facebook/react@eafeac097b (2026-08-21).
Data as JSON: /api/errors/69c9618cd7992dc8.
Report an issue: GitHub.