Codex Generated File Link Missing? Recover the Output Safely

Codex Generated File Link Missing? Recover the Output Safely

Aident AI

An amber paper tile stops before a cyan arch, coral crescent, and violet landing plane on deep indigo.

Codex Generated File Link Missing? Recover the Output Safely

If Codex says it created a file but the desktop app shows no attachment, first identify whether the output came from a cloud conversation or a local workspace task. For a cloud conversation, open the same conversation in the web client. For a local task, verify the cited workspace path. If the file downloads on the web or exists locally, preserve that copy before asking Codex to regenerate anything.

This is a recovery guide for several open Codex app issues, not a confirmed product fix. Reports on both Windows and macOS describe DOCX, PDF, Markdown, JSON, ZIP, spreadsheet, and image outputs that exist but appear as blank bullets, plain text, missing cards, or inert links in a desktop or remote client.

Identify Which Layer Failed

Start with the smallest useful distinction:

What you observe

Likely failure boundary

Safest next step

The file is downloadable in the same conversation on the web

Desktop attachment rendering or link handling

Download it from the web and preserve the working copy

The file exists in the local workspace, but a remote or mobile client cannot open it

A host-local path was presented as if it were a remote attachment

Copy it locally or relay it through an approved file-delivery path

A filename is visible, but clicking it does nothing

Client link handling

Open the same conversation on the web before regenerating

The web link reaches /backend-api/estuary/content and fails

Signed artifact delivery, authentication, or expiry

Do not share the signed URL; retry once with a fresh artifact

No local file and no web attachment exist

File generation may have failed

Ask Codex to regenerate once, then verify the output before continuing

The browser check matters because multiple issue reports compare the exact same message across clients. In issue 36933, a DOCX attachment was missing in the Windows desktop app but immediately appeared and downloaded in Chrome. Issue 32105 reports the same cross-client mismatch on macOS with ZIP, Markdown, and JSON files. That evidence points to presentation or delivery for those reproductions, not file contents.

Do not assume every missing link has the same cause. A local workspace path, a cloud sandbox: attachment, and a short-lived web download URL have different ownership and lifetime.

Recover a Cloud-Generated Attachment

For a file generated in Chat mode or another cloud conversation:

  1. Keep the desktop conversation open so you do not lose its identity.

  2. Open the same conversation on chatgpt.com with the same account.

  3. Locate the exact assistant message that claims to contain the file.

  4. Download the attachment if the web client exposes it.

  5. Open the downloaded copy and verify its type and expected contents.

  6. Save it to a durable location you control.

Do not repeatedly ask for a new file before trying the same conversation on the web. Every regeneration creates another candidate and makes it harder to know which output you verified.

If the browser also omits the attachment, ask Codex for a concise inventory instead of another prose assurance:

List every output you created in this turn. For each output, return only:
- filename
- whether it is a local workspace file or a cloud attachment
- exact local path, if one exists
- byte size
- the validation you ran

Do not regenerate or upload anything yet

This separates an absent renderer control from an absent artifact.

Recover a Local Workspace File

Codex app tasks can write files into their workspace. If the response cites a local path, verify the file through the task's terminal or the editor rather than treating the chat link as the source of truth.

On macOS or Linux:

ls -lh -- /absolute/path/to/output.pdf
file -- /absolute/path/to/output.pdf

In PowerShell:

Get-Item -LiteralPath 'C:\absolute\path\to\output.pdf' |
  Select-Object FullName, Length, LastWriteTime

Then open or copy the file from the workspace using the operating system. A local path can prove the file exists on that host, but it is not a downloadable attachment for another device. Issue 36263 documents that exact boundary: a PDF existed on a Windows host, while file citations and absolute paths were not usable from the remote mobile view.

If the file is present, do not regenerate it. Move a verified copy to the destination you actually need.

Handle a Visible but Inert Link

Issue 37193 reports a Windows desktop sandbox: link that was visible but did nothing when clicked, while the same download worked on the web. The recovery order is therefore:

  1. Try the same conversation on the web.

  2. Confirm the downloaded file opens.

  3. Record the app version and platform if you plan to report the bug.

  4. Avoid resetting the app until the working file is safe.

Reinstalling or resetting the desktop app is a poor first move. It does not recover the output, and another open report says an app reset did not repair plain-text file links.

If a normal web URL disappears from a Voice transcript, issue 37900 reports a different workaround: ask Codex to copy the complete URL to the macOS clipboard, then paste it into the browser. Use that only for ordinary URLs. A sandbox: reference or signed backend URL is not a durable public link.

Do Not Share Signed Artifact URLs

Issue 37127 shows a web download failing at a signed /backend-api/estuary/content URL with ERR_INVALID_RESPONSE. Treat the query string as a credential-like bearer link:

  • do not paste it into a public issue;

  • do not store it in source control or logs;

  • do not send it to an unrelated integration;

  • do not expect it to remain valid.

Ask Codex to create one fresh artifact and try one fresh download. If that fails too, preserve the conversation URL, timestamp, product surface, browser, and error text, but omit the signed query parameters from the report.

Relay a Verified File With Aident Loadout

When a local file must reach another integration or remote agent, use a deliberate transfer contract instead of pretending its host path is globally reachable. Aident Loadout currently exposes Aident File Storage Actions that create an upload URL and later issue a short-lived download URL. The current contract accepts non-executable files up to 25 MB, deletes them after 48 hours, and makes the download URL valid for 15 minutes by default.

Start with:

Follow https://aident.ai/SETUP.md

Then ask your agent:

Check Aident Loadout authentication and Vault status. Discover the current Aident File Storage upload and download Actions, inspect both schemas, and preflight a transfer for this verified file. Confirm the filename, content type, byte size, 25 MB limit, retention period, and download-link lifetime. Do not upload until I approve. After approval, upload once, request the download URL immediately before the intended integration uses it, and do not print the signed URLs in the final response.

Use this only for files you are permitted to place in temporary managed storage. Do not relay secrets, private keys, credential exports, regulated data, or customer documents without the appropriate policy and authorization. The upload Action is a delivery option, not a repair for a broken desktop renderer.

Set up Aident Loadout for verified file delivery.

Capture a Useful Bug Report

Once the output is safe, preserve a minimal reproduction:

  • Codex or ChatGPT app version;

  • operating system and architecture;

  • conversation mode and client surface;

  • file type;

  • whether the filename was absent, plain text, a blank bullet, or clickable but inert;

  • whether the exact conversation worked on the web;

  • whether the local file existed and its byte size;

  • timestamp and screenshot with private data removed.

Do not include the file itself unless it is harmless and intentionally shareable. Never include a signed attachment URL. Link to the closest existing issue instead of opening a duplicate when the symptom and client match.

What Not to Do

Avoid these common detours:

  • regenerating the same file many times before checking the web client;

  • treating sandbox:/mnt/data/... as a permanent URL;

  • pasting a host-local path into a remote client and calling it a download;

  • resetting the app before preserving the working artifact;

  • publishing signed download URLs;

  • uploading sensitive files merely to bypass a renderer bug;

  • claiming the artifact is corrupt when another client downloads and opens it.

The recovery rule is simple: establish where the bytes exist, use the client or transfer path that actually owns them, and verify one saved copy before changing the environment.

Sources

Refresh this guide when the linked Codex issues change state, OpenAI documents a supported cross-client artifact contract, or Aident File Storage changes its size, retention, or signed-link lifetime.

Home

Home

Home

Integrations

Integrations

Integrations

Vault

Vault

Vault

Audit

Audit

Audit

Arana Grande

Arana Grande

Arana Grande

Free

Free

Free

30-day audit summary

30-day audit summary

30-day audit summary

Daily action-call volume and the latest receipts from the Loadout audit trail.

Daily action-call volume and the latest receipts from the Loadout audit trail.

Daily action-call volume and the latest receipts from the Loadout audit trail.

View Audit

View Audit

View Audit

Loadout usage

Loadout usage

Loadout usage

617 action calls in the last 30 days

617 action calls in the last 30 days

617 action calls in the last 30 days

May 19 - Jun 17

May 19 - Jun 17

May 19 - Jun 17

10 active days

10 active days

10 active days

Less

Less

Less

More

More

More

Recent activity

Recent activity

Recent activity

Latest action-call receipts from connected agents

Latest action-call receipts from connected agents

Latest action-call receipts from connected agents

Apr 23, 09:23 AM

Apr 23, 09:23 AM

Apr 23, 09:23 AM

Shopify

Shopify

Shopify

Creates Or Updates An Asset For A Theme

Creates Or Updates An Asset For A Theme

Creates Or Updates An Asset For A Theme

Success

Success

Success

Apr 23, 09:21 AM

Apr 23, 09:21 AM

Apr 23, 09:21 AM

Shopify

Shopify

Shopify

Update Products Param Product Id

Update Products Param Product Id

Update Products Param Product Id

Success

Success

Success

Apr 23, 08:53 AM

Apr 23, 08:53 AM

Apr 23, 08:53 AM

Shopify

Shopify

Shopify

Update Products Param Product Id

Update Products Param Product Id

Update Products Param Product Id

Failed

Failed

Failed

Apr 22, 22:13 PM

Apr 22, 22:13 PM

Apr 22, 22:13 PM

Shopify

Shopify

Shopify

Create Product Image

Create Product Image

Create Product Image

Success

Success

Success

Apr 22, 22:12 PM

Apr 22, 22:12 PM

Apr 22, 22:12 PM

Shopify

Shopify

Shopify

Create Product Image

Create Product Image

Create Product Image

Success

Success

Success

Connected integration coverage

Connected integration coverage

Connected integration coverage

162

162

162

of 753 accessible connected

of 753 accessible connected

of 753 accessible connected

Callable actions

Callable actions

Callable actions

1,126

1,126

1,126

Vault credentials

Vault credentials

Vault credentials

8

8

8

Explore what's possible

Explore what's possible

Explore what's possible

See all Integrations

See all Integrations

See all Integrations

Google Ads

Google Ads

Google Ads

All available Goolge Ads tools via...

All available Goolge Ads tools via...

All available Goolge Ads tools via...

X (twitter)

X (twitter)

X (twitter)

All available X tools via...

All available X tools via...

All available X tools via...

Github

Github

Github

All available Github tools via...

All available Github tools via...

All available Github tools via...

Notion

Notion

Notion

All available Notion tools via...

All available Notion tools via...

All available Notion tools via...

Slack

Slack

Slack

All available Slack tools via...

All available Slack tools via...

All available Slack tools via...

Firecrawl

Firecrawl

Firecrawl

All available Firecrawl tools via...

All available Firecrawl tools via...

All available Firecrawl tools via...

753 integrations are available for loadouts.

753 integrations are available for loadouts.

753 integrations are available for loadouts.

The one tool

for every tool

your agent needs.

Give any AI agent real capabilities in seconds. Connect 1,000+ tools once, skip the setup headache, and let your agents execute.

Try Aident Loadout

Give your Agent real capabilities in minutes. Connect 1,000+ tools, and let your agents execute.

Try Aident Loadout

Give your Agent real capabilities in minutes. Connect 1,000+ tools, and let your agents execute.

Try Aident Loadout

Give your Agent real capabilities in minutes. Connect 1,000+ tools, and let your agents execute.