openai / openai/codex

[Bug] In-chat scheduled tasks fork conversations, move pins, lose attached context, and retarget themselves

Open
#41,682 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

automations bug codex-web session
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What issue are you seeing?

Scheduled tasks created inside an existing ChatGPT Work conversation repeatedly execute in a newly created fork instead of returning to the original conversation.

When this happens:

  • A new conversation appears for the scheduled run.
  • The new conversation takes the original conversation’s pinned position.
  • The original conversation is no longer pinned.
  • The scheduled task’s destination appears to migrate to the new fork.
  • Files attached to the original conversation are unavailable in the fork.
  • A task that depends on an attached file therefore reports that it cannot access the file and asks for it to be attached again.
  • Recurring tasks may subsequently become paused without user authorization.
  • An enabled task with a valid stored schedule can continue showing an empty next_run_time.

This has occurred repeatedly with both recurring check-ins and one-time reminders.

What steps can reproduce the bug?
  1. Open an existing, long-running ChatGPT Work conversation.
  2. Pin the conversation.
  3. Attach a Library-backed file and confirm that ChatGPT can read it.
  4. Create a scheduled task inside that conversation, explicitly intending the result to return to the same conversation.
  5. Have the task reference the attached file in its saved prompt.
  6. Allow the scheduled task to run.
  7. Observe that a separate conversation is created for the run.
  8. Observe that the new conversation takes the original conversation’s pin.
  9. Open the new conversation and observe that the attached file is unavailable.
  10. Inspect the scheduled task and observe that its conversation destination now points to the fork.
  11. In some occurrences, observe that the recurring task has also become paused or has no calculated next-run time.

Re-enabling or recreating the task does not reliably resolve the problem; a later run can fork again and repeat the pin and context loss.

What is the expected behavior?

A scheduled task created inside an existing conversation should:

  • Return to that same conversation.
  • Retain access to the conversation’s existing context and attached files.
  • Leave the conversation’s pinned state unchanged.
  • Keep its original conversation destination unless the user explicitly changes it.
  • Remain enabled after recurring runs unless the user pauses it or the recurrence ends.
  • Populate a valid future next-run time when enabled with a valid schedule.
  • Record failed or blocked runs without silently retargeting or disabling the task.

This is also the behavior described in the scheduled-tasks documentation: an in-chat task should use the existing conversation and its context.

Additional information
Actual behavior

The task runs in a newly created fork, transfers the pin to that fork, loses access to attached context, and changes its effective destination. Scheduler state may then become inconsistent or disabled.

Frequency

Intermittent but repeatedly reproducible across multiple scheduled tasks.

Environment
  • Product surface: ChatGPT Work on the web
  • Task types observed: recurring in-chat tasks and one-time in-chat reminders
  • Attached source: Library-backed file
  • Schedule timezone: Europe/Amsterdam
Related issue

#38350 covers recurring scheduled tasks disabling themselves without authorization. That appears related, but it does not cover the conversation forking, pin transfer, attachment loss, or destination migration described here.

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

The issue names no repository files, tests, or code entry points. Start by tracing the in-chat scheduled-task execution and its conversation destination handling, then reproduce with a pinned conversation and attached Library-backed file; done means the task stays in the original conversation, preserves context and pin state, remains enabled, and records a valid next-run time.

Written by the indexing model from the issue text.

Assessment

Domain
backend
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.