openai / openai/codex

[ChatGPT Web][Projects] Completed chats and Work tasks remain stuck on skeleton loaders for days

Open
#42,785 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug codex-web
Dominant language
Rust
Stars
125k
Forks
19.5k
PR merge metrics
PR metrics pending

Description

Product / surface
  • ChatGPT Web → Projects → Chats
  • Google Chrome on macOS
  • ChatGPT Pro 20x
  • Existing large private Project with many Chat and Work conversations
  • Reproduced repeatedly through September 4, 2026
What issue are you seeing?

Inside an existing ChatGPT Project, multiple conversations continue displaying gray/silver horizontal skeleton loaders / skeleton placeholders underneath their titles even though those chats and Work tasks finished days ago.

These are not newly created conversations that are still initializing. The affected items are already-completed conversations/tasks that have remained in the Project for days.

The Project successfully renders substantial metadata for the affected rows:

  • conversation/task title;
  • date;
  • placement in the Project conversation list; and
  • the surrounding Project UI.

However, the area where the normal conversation preview/snippet should appear remains rendered as a gray rounded horizontal loading placeholder. The skeleton state can persist for days rather than resolving after initial page load.

This is therefore not normal active-task progress. The underlying chats/Work tasks already completed; only the preview/snippet area remains in a stale loading state.

Steps to reproduce
  1. Open chatgpt.com.
  2. Open an existing ChatGPT Project with a substantial conversation history.
  3. Go to the Project's Chats view.
  4. Look at conversations or Work tasks that completed previously, including items completed several days earlier.
  5. Observe the preview/snippet area beneath some titles.
  6. Instead of the normal preview text, a gray/silver rounded skeleton placeholder remains visible.
  7. Leave the Project open or return to it later.
  8. The same completed items can continue displaying the skeleton loaders indefinitely.
Actual behavior

Completed Project conversations can remain in a permanent partial-loading presentation:

  • title is rendered;
  • date is rendered;
  • the conversation/task exists and is already completed;
  • but the preview/snippet remains a skeleton loader.

Multiple completed conversations can show this condition simultaneously, and the state can persist for days.

Expected behavior

Once a Project conversation or Work task has completed and its list metadata is available, its preview area should reach a stable state.

The UI should either:

  1. render the normal conversation preview/snippet; or
  2. if that preview cannot be retrieved, display an explicit unavailable/error/retry state.

A loading skeleton should not remain indefinitely on an item that completed days ago.

The UI should also keep task execution state separate from preview-loading state, so a stale preview placeholder cannot visually imply that completed work is still running.

Impact

This makes Project state misleading.

In a large Project containing many long-running conversations and Work tasks, the user needs to distinguish between:

  • work that is genuinely still active;
  • a conversation that is temporarily loading;
  • a completed conversation; and
  • a preview that failed to load.

Persistent skeleton loaders make those states visually ambiguous. This can cause unnecessary reopening, retrying, or duplication of already-completed work and makes the Project conversation list look perpetually unfinished.

Related reports checked
  • #42736 — large ChatGPT Projects stuck on Searching project context with repeated HTTP 429s. This is related to large-Project/context loading but is not the same reproduction: this report concerns stale skeleton loaders in the Project conversation list for already-completed chats/tasks.
  • #38943 — ChatGPT Web pin/sidebar organization can hide Recents. This is another Web conversation-list/sidebar rendering issue but is also a different reproduction.

A duplicate search for ChatGPT Projects skeleton loader completed chats preview stuck and skeleton ChatGPT Web Project conversations loading returned no exact open match before filing.

Requested investigation

Please investigate the ChatGPT Web Projects conversation-list hydration/rendering path, especially:

  • why preview/snippet skeleton placeholders can survive for days after a conversation has completed;
  • whether preview state is cached or left permanently pending;
  • whether a failed preview request lacks terminal error handling;
  • whether large Projects or long conversation histories increase the likelihood of stale skeleton state;
  • whether conversation/task completion invalidates and refreshes the corresponding Project-list row correctly;
  • whether Project-list preview loading can become disconnected from the actual conversation lifecycle state; and
  • whether the client can recover these rows automatically without requiring the user to recreate, move, or delete conversations.

Please ensure that a skeleton loader has a bounded lifetime and transitions to either actual content or an explicit error/retry state.

Evidence

A screenshot from the affected ChatGPT Web Project shows multiple already-completed conversations with persistent gray/silver horizontal skeleton placeholders directly underneath their titles. The screenshot is available if maintainers need it; the public issue intentionally omits private Project and conversation names.

Matching in-product feedback was also submitted from ChatGPT Web on September 4, 2026.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue in ChatGPT Web → Projects → Chats using the described completed conversations and inspect the Project conversation-list hydration/rendering path. No repository file or test is named; done means completed rows leave the skeleton state and show preview content or an explicit unavailable/error/retry state.

Written by the indexing model from the issue text.

Assessment

Domain
frontend, web-dev
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.