[Feedback][macOS] /feedback shows task ID as ready, then diagnostics upload fails
Summary
In the current unified ChatGPT desktop app on macOS, the Codex task /feedback flow reaches a partial-looking state and then fails:
- The dialog says Uploading feedback.
- It says: “Your Feedback ID is ready while diagnostics finish uploading.”
- It displays
01a02352-42e0-7db0-a2eb-c68dba704dd2. - That value exactly matches the current Codex task ID.
- The app then shows: “We couldn't submit your feedback. Please try again in a moment.”
This leaves the submission state ambiguous. The UI presents an identifier as ready, but it does not establish whether the feedback text was accepted, whether only diagnostics failed, or whether the entire submission failed.
Environment
- Product surface: unified ChatGPT desktop app → Codex task
- Platform: macOS
- Subscription: ChatGPT Pro
- Date reproduced: 2026-08-21
- Client identifier observed in the same current task context:
Codex Desktop/26.818.31338 - Correlation/current task ID:
01a02352-42e0-7db0-a2eb-c68dba704dd2
Steps to reproduce
- Open a Codex task in the ChatGPT desktop app.
- Run
/feedback. - Enter feedback and submit it with diagnostics enabled.
- Observe the Uploading feedback dialog.
- Observe that the dialog presents the current Codex task ID as the Feedback ID while diagnostics continue uploading.
- Wait for completion.
- Observe the red error banner: “We couldn't submit your feedback. Please try again in a moment.”
After the failure, I also created a local performance trace to preserve diagnostic evidence. The app displayed the Send profile trace? warning that enabled JavaScript and native memory-allocation profiles may contain sensitive data. The trace was not uploaded or attached to this public issue.
Actual behavior
- The UI presents a Feedback ID before the upload finishes.
- The displayed value is the current Codex task ID, so it is not an independent success receipt.
- The flow later reports submission failure.
- The app does not say whether:
- the feedback text was stored;
- only diagnostics or extra files failed;
- the report is queued for retry; or
- nothing was accepted.
- There is no final auditable success state or separate diagnostic-upload status.
Expected behavior
/feedbackshould complete successfully and show a final confirmation.- If the base feedback report succeeds but diagnostics fail, preserve the base report and clearly state feedback submitted; diagnostics failed.
- If the entire submission fails, do not present the task/conversation ID as though it were a completed Feedback ID.
- Expose separate status for:
- feedback text;
- standard logs/diagnostics; and
- optional performance/profile traces or extra files.
- Provide a retry path for only the failed diagnostic component without creating an uncertain duplicate report.
Impact
Users cannot tell whether OpenAI received their feedback. Retrying may create duplicates if the text succeeded, while not retrying may leave the report unsubmitted. The failure is especially problematic when /feedback is the recommended route for supplying diagnostics about another product defect.
The feedback that triggered this reproduction concerns the web Chat/Work Project-picker parity issue documented in #39884.
Related issue / duplicate distinction
- #16304 reports the same final error message on an older desktop build and says it can occur with or without logs.
- This report adds the current identifier-first, diagnostics-still-uploading, then failure sequence, proves that the displayed “Feedback ID” equals the current Codex task ID, and requests separate base-report and diagnostic-upload status.
- #39884 is the distinct product issue that the failed feedback submission was attempting to report.
Source basis
Official OpenAI documentation describes:
/feedbackas opening the feedback dialog and optionally including logs.feedback/uploadas submitting classification, optional reason/logs, the conversation ID, and optional extra log-file attachments.
That product shape is consistent with the need to distinguish the base report from optional diagnostic uploads, but it does not establish which component failed in this reproduction.
Routing and privacy
- Type: bug / validation gap
- Scope: public OpenAI/Codex
- Owning surface: ChatGPT desktop app → Codex task
- Target repo:
openai/codex - Privacy class: public-safe, pointer-only diagnostics
- Excluded: raw performance trace, JavaScript/native memory profiles, logs, account details, Project names, local paths, and private conversation content
- Duty verbs: submit, upload, preserve, distinguish, retry
- Priority: P2
- Owner: OpenAI Codex desktop feedback pipeline
- Next safe action: reproduce the post-ID diagnostics failure and inspect server-side handling for the correlation/task ID above
- Approval gate: owner approved this sanitized public issue
- Validation/close criteria: final success is explicit; partial failures identify the failed component; base feedback is preserved when optional diagnostics fail; retrying diagnostics does not create duplicate feedback reports
1 Comment
Independent Windows ARM64 confirmation on the same current Desktop release family.
Environment:
26.818.8289.026.818.61809019f3421-934e-7471-8c1b-95c95f668565Two in-app feedback submissions from the affected task did not produce a durable final success receipt.
A read-only check after the attempts found:
An empty queue does not prove success. It can also mean that the failed report was dropped before durable queuing. Therefore the user still cannot determine whether the feedback text reached the backend, only diagnostics failed, or nothing was accepted.
This reproduces the core ambiguity described here on Windows ARM64. The UI needs separate durable status for the base feedback payload and diagnostics, plus a stable server-issued receipt after acceptance.
Privacy: no feedback text, logs, local paths, account data, hostnames, or project names are included.