Codex Desktop: response annotation overlay crashes with CSSStyleDeclaration error and loses all unsent notes

Open 💬 0 comments Opened Aug 1, 2026 by cquvoice

What version of the Codex App are you using?

  • Windows package: OpenAI.Codex 26.727.6591.0
  • Frontend release: codex@26.727.51351
  • Embedded Chromium / ChatGPT.exe: 150.0.7871.182

What platform is your computer?

  • Windows 11 Professional x64, build 22621
  • Display scale: 150%
  • Multi-monitor setup

What issue are you seeing?

While adding multiple notes to selected text in an assistant response, the response-annotation UI throws a render-time DOM exception and falls into the app-level React error boundary. Recovering from that screen resets navigation to /, and every unsent response annotation is lost.

This has happened three times in the same task. The first two occurrences were within about 18 minutes. A full Windows reboot did not help; the third occurrence reproduced on the same current package with no Microsoft Store update or package change after boot.

At least two batches of roughly ten detailed notes were lost, costing about an hour of work.

Captured exception

On the third occurrence, the local Sentry breadcrumbs captured this at 2026-08-01 22:23:50.200 Asia/Shanghai:

NoModificationAllowedError: Failed to set a named property 'top' on
'CSSStyleDeclaration': These styles are computed, and therefore the
'top' property is read-only.

at It  (app://-/assets/app-initial-cpPdPura.js:192:10876)
at hc  (app://-/assets/app-initial-cpPdPura.js:193:415)
at xre (app://-/assets/app-initial-cpPdPura.js:193:10695)
at jte (app://-/assets/app-initial-cpPdPura.js:192:93614)

Sentry event ID:

bfdb4816bb074dc2aefc50608f9c1fd1

The last recorded interaction before the exception was inside:

div.ProseMirror.ProseMirror-focused[aria-label="Note"]

About 65 seconds later, the app-level error recovery button was used. The bundle's generic error-boundary recovery path resets the boundary and navigates to /. The following warnings were then recorded:

2026-08-01 22:24:55.776
Matched leaf route at location "/" does not have an element or Component.
This means it will render an <Outlet /> with a null value by default
resulting in an "empty" page.

2026-08-01 22:24:58.983
Matched leaf route at location "/" does not have an element or Component.
...

Why this appears to be the response-annotation overlay

Inspection of the packaged frontend bundle shows that the response-text annotation layer:

  • renders annotation markers and the note editor through a portal;
  • continuously calculates their positions;
  • applies dynamic inline top and left values;
  • stores the annotations in the composer field responseTextAnnotations.

The captured exception occurs in React's style application path while writing top, during active response annotation editing.

Data-loss behavior

The main message prompt has a disk-backed draft mechanism, but the unsent response annotations were not recoverable from:

  • the persisted composer draft state;
  • Local Storage or Session Storage;
  • IndexedDB;
  • the Codex session transcript;
  • the backup of the global state file.

The local Sentry breadcrumbs retained only input-event metadata, not the annotation text. Once the error boundary reset the UI, the notes were permanently gone.

What steps can reproduce the bug?

  1. Open an existing local task in Codex Desktop for Windows.
  2. Select text from an assistant response and add a response annotation/note.
  3. Repeat this for multiple passages, leaving the batch unsent.
  4. Continue adding or editing notes for several minutes.
  5. The annotation UI eventually throws the CSSStyleDeclaration.top exception and is replaced by the app-level error state.
  6. Use the recovery / “Try again” button.
  7. The UI returns to / and all unsent response annotations are gone.

Observed occurrence timeline:

  • First UI reset: 2026-08-01 21:24:23 Asia/Shanghai
  • Second UI reset: 2026-08-01 21:42:34
  • Windows reboot: 2026-08-01 22:05
  • Third exception: 2026-08-01 22:23:50
  • Third recovery/reset: 2026-08-01 22:24:55–22:24:59

Diagnostics that rule out an updater or process restart

For the third reproduction:

  • the installed Codex package stayed at 26.727.6591.0;
  • there was no Microsoft Store/Codex update after the reboot;
  • the Codex main process did not exit;
  • there was no Codex crash dump or Windows Error Reporting crash;
  • the system was not under memory pressure.

This is therefore a renderer/UI error-boundary reset, not an application update or OS reboot.

What is the expected behavior?

  1. A failure in the response-annotation marker/editor overlay must be isolated to that overlay and must never replace/reset the entire task UI.
  2. Every unsent response annotation should be autosaved and restored across:
  • renderer reloads;
  • task navigation;
  • app restart;
  • error-boundary recovery.
  1. Recovery/navigation must warn before discarding unsent annotations.
  2. A failed marker position update should degrade gracefully instead of propagating to the root error boundary.

Suggested regression coverage

  • Multiple response annotations with an editor open while the response layout changes.
  • Repeated marker repositioning under 150% Windows display scaling and multiple monitors.
  • Error injection into marker/editor positioning, verifying that the task and composer remain mounted.
  • Renderer reload/error-boundary reset with unsent responseTextAnnotations, verifying full draft recovery.

Related issues

  • #30761 — unsent PDF review comments are lost after reload.
  • #35844 — existing annotations can be lost after an accidental single-annotation send.

Those issues demonstrate the broader lack of durable annotation drafts, but neither reports this response-text annotation overlay exception or the root error-boundary reset.

Privacy

No task content, annotation text, account identifiers, or private filesystem paths are included in this report.

View original on GitHub ↗