macOS: ChatGPT desktop logs banner+sound delivery, but no turn-complete notification is visible or audible

Open 💬 1 comment Opened Jul 30, 2026 by baitangxiao

What version of the Codex App are you using (From “About Codex” dialog)?

ChatGPT desktop 26.721.81911 (build 5973)

  • Installed app: /Applications/ChatGPT.app
  • Bundle identifier: com.openai.codex

What subscription do you have?

Not included in this public report; this reproduces in the local native-notification path.

What platform is your computer?

  • macOS 26.5.2 (build 25F84)
  • arm64

What issue are you seeing?

Turn-completion notifications are configured to Always, and macOS notification permission, desktop banners, badges, and sounds are enabled for ChatGPT. Alert/output volume is 100% and output is not muted.

When a normal local turn completes, no desktop banner is perceptible and no notification sound plays, including when ChatGPT is in the background. Fully quitting and reopening ChatGPT did not fix it.

The app and macOS logs show that the native notification pipeline is invoked:

[desktop-notifications] show turn-complete ... rendererWindowFocused=false
[notifications-service] [desktop-notifications] forward show kind=turn-complete
[desktop-notifications] show notification actionCount=0 kind=turn-complete

For a reproduction at 2026-07-30 22:10:58 local time, macOS logged the notification as a banner with sound:

22:10:58.254 usernoted  Presenting <NotificationRecord app:"com.openai.codex" ...> as banner (["badge", "sound", "alert"])

However, the user observed neither the banner nor the sound. About 15 seconds later, the ChatGPT process removed that delivered notification:

22:11:13.488 ChatGPT  [com.openai.codex] Removing 1 delivered notifications
22:11:13.488 usernoted  com.openai.codex removeDeliveredAndDisplayedNotifications

Notification identifiers, conversation IDs, turn IDs, local usernames, and private paths have been removed from these excerpts.

What steps can reproduce the bug?

  1. On macOS, enable notifications and Play sound for notification for the desktop app listed as ChatGPT.
  2. In ChatGPT desktop settings, set turn-completion notifications to Always.
  3. Start a normal local Codex turn.
  4. Switch to another application while the turn is running.
  5. Wait for the turn to complete.
  6. Observe that no visible banner and no audible sound are perceived.
  7. Check app and unified system logs: the app logs show turn-complete, and macOS logs the notification as banner with sound.

What is the expected behavior?

When a turn completes and notifications are configured to Always, ChatGPT should show a visible macOS notification and play an audible completion sound, especially while the app is in the background.

Additional information

  • The cited reproduction had rendererWindowFocused=false.
  • No screen sharing or mirroring was active for the cited reproduction.
  • The app is using its native notification helper/configuration; no custom notification script is active.
  • macOS System Settings currently shows two rows named ChatGPT under Notifications. One is enabled with desktop notifications and sounds, while the other appears to be a disabled legacy entry. Neither entry was deleted. Despite this duplicate-looking UI state, unified logs confirm that macOS accepts and presents a notification for the current com.openai.codex bundle.
  • The issue persists after quitting and reopening ChatGPT.
  • Related but not exact duplicates:
  • #32535 reports visible notification banners with missing sound. This report observes neither a visible banner nor sound even though macOS logs banner + sound.
  • #13019 reports completion notification hooks being ignored in desktop app-server mode. In this report, the built-in desktop notification service does fire and macOS accepts the request.

Sanitized app/system log excerpts are available if maintainers need additional timestamps.

View original on GitHub ↗

1 Comment

nbayindirli · 22 days ago

@codex Any updates here? Turn completion sound-queues are critical for productivity. This bug has forced me to switch back to Cursor.