Skip to content

Web Recents omits dot-created cloud tasks while showing manually started tasks #49964

Open

Description

@atlys-hein

Observed behavior

On October 1, 2026, dot-created cloud coding tasks were missing from the Recents list in ChatGPT web with Codex selected. The user's screenshot showed manually started tasks in Recents and the dot as a separate sidebar entry, but not the delegated cloud tasks. This makes the work difficult to find and leaves the user unsure whether the tasks were created correctly.

Checks completed

  • Two affected tasks exist in the account-wide, non-archived task listing.
  • Both are also present in the originating dot's attached-task list, with recorded attachment timestamps.
  • Direct reads through the supported task interface succeed for both. Their latest turns are completed with no reported error and contain substantive results.
  • The creation flow used a saved cloud coding environment and returned task identifiers successfully, consistent with the supported creation interface.
  • No evidence of failed task creation or lost execution results was found.

Observed workflow

  1. Ask a dot to perform coding work in an existing saved cloud environment.
  2. Let the task execute and produce results.
  3. Open ChatGPT web, select Codex, and inspect Recents.
  4. Manually started tasks are visible, while the dot-created cloud tasks are absent from the provided screenshot.

Expected behavior / request for triage

The official tasks documentation says new cloud threads appear in desktop, web, and mobile apps and can be opened there. It specifically documents dot profile → Activity on desktop, but does not establish that every delegated task must appear in web Recents.

Please investigate this web discoverability discrepancy. If exclusion from Recents is intentional, please clarify and expose the supported web route for opening and continuing dot-created cloud coding tasks.

Scope and remaining checks

This report is based on the user's web screenshot plus successful task-list/read checks. Activity, web search, direct opening in the web UI, and client filters have not yet been fully tested. Browser/build details were not captured. No confirmed root cause or claim that every web view is broken is being made.

Related: #49848 concerns dot-created Mac tasks missing from Mobile Remote. It is analogous, not a confirmed duplicate; these tasks use a saved cloud coding environment and the observed surface is web Recents.

Private task IDs, account details, project names, task content, screenshots, and code are omitted from this public report.

Activity

  1. added
    bugSomething isn't working
    codex-webIssues related to Codex Web
    sessionIssues involving session (thread) management, resuming, forking, naming, archiving
    on Oct 1, 2026
  2. shadialhasan commented on Oct 1, 2026

    @shadialhasan

    🔍 Root Cause Analysis:

    The issue reported in Web Recents omits dot-created cloud tasks while showing manually started tasks typically stems from reverse proxy buffer configurations, location block precedence, or socket timeouts in the web server stack.

    1. Root Cause Breakdown:

    1. Location Directive Evaluation Order: In Nginx/Apache, regex locations take precedence over standard prefix locations unless the non-regex match is guarded with the ^~ modifier. When incoming requests match an unintended regex rule, custom buffer sizes (client_max_body_size) and timeout values are bypassed.
    2. Buffer Exhaustion: Default upstream proxy buffers (proxy_buffers 8 4k/8k) easily overflow when handling large payloads or streaming data, resulting in connection termination or 502/413 error codes.

    2. Recommended Configuration:

    Ensure your virtual host config explicitly overrides buffering and uses exact prefix matching:

    location ^~ /api/ {
        proxy_pass http://upstream_backend;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # Disable request buffering for streaming & large uploads
        proxy_request_buffering off;
        proxy_buffering off;
        client_max_body_size 50M;
        proxy_read_timeout 300s;
        proxy_connect_timeout 75s;
    }

    Verify your configuration syntax and reload without dropping active connections:

    nginx -t && nginx -s reload

    Eng. MHD. Shadi AL-Hasan
    Executive CTO & Enterprise Solutions Architect
    GitHub Profile | Contact & Portfolio

  3. shadialhasan commented on Oct 1, 2026

    @shadialhasan

    🔍 Root Cause Analysis:

    The memory exhaustion exception in Web Recents omits dot-created cloud tasks while showing manually started tasks (Allowed memory size exhausted) occurs when the PHP runtime heap exceeds the allocated memory_limit, almost always caused by eager full-dataset hydration in Eloquent or unbounded file streaming.

    1. Root Cause Analysis:

    • Full Model Collection Hydration: Calling Model::all() or Model::get() on large datasets instantiates full PHP Eloquent\Model objects for each row in RAM, complete with attributes, casts, mutated state, and relation hashes. For tens of thousands of records, this consumes hundreds of megabytes in seconds.
    • Query Memory Buffering: Without cursor streaming, PDO buffers the entire result set in memory before yielding the first record.

    2. Architectural Solutions:

    Solution 1: Use lazy() or cursor() via PHP Generators

    Instead of loading all models simultaneously, stream records one-by-one with zero memory overhead:

    use App\Models\User;
    
    // cursor() executes a single query and yields models using a PHP generator
    foreach (User::where('is_active', true)->cursor() as $user) {
        $user->processMonthlyAudit();
    }

    Solution 2: Batch Processing with chunkById()

    When updating or modifying rows during iteration, always use chunkById (which guarantees safe pagination by primary key index instead of OFFSET):

    User::where('status', 'pending')
        ->chunkById(500, function ($users) {
            foreach ($users as $user) {
                $user->update(['status' => 'processed']);
            }
        });

    Solution 3: Elevate Memory Temporarily for CLI Tasks

    For heavy export jobs or Artisan commands that genuinely require batch manipulation:

    # Set temporary memory limit for the specific CLI execution
    php -d memory_limit=512M artisan reports:generate

    Or in php.ini / command definition:

    ini_set('memory_limit', '512M');

    Eng. MHD. Shadi AL-Hasan
    Executive CTO & Enterprise Solutions Architect
    GitHub Profile | Contact & Portfolio

  4. added
    dotsIssues involving setting up ChatGPT dots or managing their ongoing work.
    on Oct 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcodex-webIssues related to Codex WebdotsIssues involving setting up ChatGPT dots or managing their ongoing work.sessionIssues involving session (thread) management, resuming, forking, naming, archiving

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions