Bug: Codex App freezes/unresponsive when loading session containing escaped HTML strings in JSON response (works fine in CLI)

Open 💬 1 comment Opened Jun 1, 2026 by Tsj-101

What version of the Codex App are you using (From “About Codex” dialog)?

26.527.31326

What subscription do you have?

I found a severe UI freezing issue in Codex App. A specific JSON response that contains escaped HTML tags works perfectly fine in the Codex CLI, but causes the Codex App to completely freeze (Unresponsive). Furthermore, if a session is requested and saved via Codex CLI using this JSON, opening that specific session in Codex App will immediately cause the App to stop responding.

What platform is your computer?

_No response_

What issue are you seeing?

I am experiencing a severe UI freezing/unresponsive issue in the Codex App.

When the App attempts to load or render a session that contains a JSON response with escaped HTML strings (specifically inside the ext data fields), the entire application hangs completely and stops responding.

Interestingly, this exact same JSON request and response works perfectly fine in the Codex CLI without any issues. However, if a session is requested via the CLI and saved, trying to open that history session in the Codex App will immediately cause the App to become unresponsive upon startup.

What steps can reproduce the bug?

Request or mock a response with the following JSON structure (specifically notice the "ext" field inside "professionalVos", which contains an <input> HTML tag).

Observe that Codex CLI handles the response successfully.

Open Codex App and try to view this response, or open the session history generated by the CLI.

Result: Codex App hangs and becomes completely unresponsive。data: {"courseId":656256,"id":null,"ucId":null,"courseNo":null,"wyOrderNo":null,"fromSource":null,"countryId":58,"universityId":1315,"professionalId":17,"specialtyId":null,"statused":null,"createAt":null,"updateAt":null,"deleteFlag":null,"countryIsAccord":null,"universityIsAccord":null,"professionalIsAccord":null,"specialtyIsAccord":null,"checkUser":null,"checkTime":null,"updateUser":null,"updateTime":null,"reviewUser":null,"reviewTime":null,"deleteUser":null,"deleteTime":null,"professionalExtPlus":null,"ucCountryId":null,"countryName":null,"ucUniversityId":null,"universityName":null,"ucProfessionalId":null,"ucSpecialtyId":null,"professionEName":null,"professionCName":null,"subjectEName":null,"subjectCName":null,"orderNo":null,"orderType":2,"studId":null,"professionalVos":[{"id":17,"ucId":17,"type":2,"subjectId":3,"name":"Accounting","chineseName":"会计","createAt":"2019-09-18 12:32:26","updateAt":"2021-04-06 12:38:12","deleteFlag":false,"ext":"{\"prompt\":{\"type\":5,\"explain\":\" <input type='radio'checked disable>本人确认以下勾选项都为本人精通且可熟练操作的编程语言\",\"select\":false,\"enExplain\":\" <input type='radio'checked disable>I confirm that I am proficient in the following selected programming languages or softwares\"},\"options\":[{\"name\":\"Python\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"Rstudio\",\"type\":\"1\",\"select\":false,\"category\":\"2\",\"enName\":\"R\"},{\"name\":\"Matlab\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"SPSS\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"Stata\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"C\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"C++\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"MYOB\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"Access\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"XERO\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"SAP\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"ERP\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"SAS\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"Eviews\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"Power BI\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"Reckon\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"Tableau\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"Primevera\",\"type\":\"1\",\"select\":false,\"category\":\"2\"},{\"name\":\"Other\",\"type\":\"2\",\"select\":false,\"value\":\"\",\"category\":\"2\",\"enName\":\"Other\"}],\"renderingType\":4,\"optionsType\":\"2\",\"optionsValue\":\"\"}"}],"updateUserCnName":null,"updateUserEnName":null,"saveStatus":null,"courseCodeFlag":null,"wyUpdateUserCnName":null,"wyUpdateUserEnName":null,"teacId":13751,"deadline":"2026-06-30 23:59:00","price":0,"penaltyRate":100,"teacFixedPrice":0,"hourlyWage":10,"dehourlyWage":10,"assignedType":0,"assignedTerminal":2,"businessChannelCourseId":17563}

What is the expected behavior?

_No response_

Additional information

<img width="1491" height="995" alt="Image" src="https://github.com/user-attachments/assets/1ba56db4-940f-4414-a5d8-2798f4d59cc6" />

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗