Skip to content

Conversation

@hassanzadeh-mj
Copy link

@hassanzadeh-mj hassanzadeh-mj commented Dec 27, 2025

Fixes #17355

This fixes an issue where React throws 'Should not already be working' error after execution is paused by breakpoint or alert in Firefox.

The problem occurs when executionContext is set but workInProgressRoot is null, indicating the context is stale from a previous interrupted render/commit. Instead of throwing, we now reset the stale context.

Changes:

  • Added defensive check in performWorkOnRoot to reset stale executionContext
  • Added defensive check in commitRoot to reset stale executionContext
  • Added tests to verify the fix works correctly

Test plan:

  • All tests pass
  • Verified executionContext is properly reset after interruption
  • Verified invariant is still enforced when actually working

Summary

How did you test this change?

This fixes an issue where React throws 'Should not already be working'
error after execution is paused by breakpoint or alert in Firefox.

The problem occurs when executionContext is set but workInProgressRoot
is null, indicating the context is stale from a previous interrupted
render/commit. Instead of throwing, we now reset the stale context.

Changes:
- Added defensive check in performWorkOnRoot to reset stale executionContext
- Added defensive check in commitRoot to reset stale executionContext
- Added tests to verify the fix works correctly

Test plan:
- All tests pass
- Verified executionContext is properly reset after interruption
- Verified invariant is still enforced when actually working
@meta-cla
Copy link

meta-cla bot commented Dec 27, 2025

Hi @hassanzadeh-mj!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

@meta-cla meta-cla bot added the CLA Signed label Dec 27, 2025
@hassanzadeh-mj hassanzadeh-mj changed the title Fix: Handle stale executionContext after breakpoint/alert interruption Fix: Handle stale executionContext after breakpoint/alert interruption Fixes #17355 Dec 27, 2025
@hassanzadeh-mj hassanzadeh-mj changed the title Fix: Handle stale executionContext after breakpoint/alert interruption Fixes #17355 Fix: Handle stale executionContext after breakpoint/alert interruption #17355 Dec 27, 2025
@hassanzadeh-mj hassanzadeh-mj changed the title Fix: Handle stale executionContext after breakpoint/alert interruption #17355 Fix: Handle stale executionContext after breakpoint/alert interruption #17355 Dec 27, 2025
@hassanzadeh-mj hassanzadeh-mj changed the title Fix: Handle stale executionContext after breakpoint/alert interruption #17355 Fix: Handle stale executionContext after breakpoint/alert interruption Dec 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

"Should not already be working" in Firefox after a breakpoint/alert

1 participant