Mac app permissions not working? Check the right layer
A failed utility can have the right system access and still do nothing because notification delivery or app state is wrong. Diagnose those layers separately. Reinstall last.
If Mac app permissions are not working, test three layers in order: system authorization, delivery policy, and app state. A color picker needs screen access, but a cancelled pick is not the same as denied access. A monitor may have notification permission while Focus hides the banner, or it may have nothing new to deliver because its alert state never crossed the configured line.
Disclosure: I build TeenyApps, including TeenyColor and TeenyStat. My bias is toward small native Mac utilities that ask for narrow permissions and explain why. My troubleshooting rule is still plain: do not reinstall until you know which layer failed.
This page is narrower than the general Mac menu bar app permissions guide. That page helps decide what to allow. This checklist is for the moment after a feature already stopped working.
Three layers to test before a reset
| Layer | Question | Evidence to record |
|---|---|---|
| System authorization | Does macOS allow this app to use the screen, microphone, input events, notifications, or login item it needs? | The app's switch and status in the matching System Settings pane. |
| Delivery policy | Did macOS receive the event but hide, delay, or route it somewhere you did not notice? | Notification style, Notification Center, Focus, lock-screen, sleep, and screen-sharing settings. |
| App state | Did the utility see a new action or threshold transition that should produce output? | The selected feature, before value, action, after value, and result. |
Do not toggle a permission until you have written down the current state. Otherwise, a relaunch, a changed threshold, and a permission reset can happen together, leaving you with no reliable cause.
Quick permission repair table
| Broken feature | Likely setting | What to do first |
|---|---|---|
| Color picker cannot sample the screen | Privacy & Security, Screen and System Audio Recording | Allow the app, quit it, then open it again before testing. |
| CPU or memory alert never appears | Notifications, Focus, and the app's alert state | Confirm delivery first, then create one deliberate below-to-red transition. |
| Global shortcut does nothing | The app's shortcut setting, then Accessibility or Input Monitoring when the feature needs it | Change the shortcut once to rule out a conflict with macOS or another app. |
| Menu bar item missing after restart | Login Items & Extensions | Confirm the app is allowed to open at login before changing other settings. |
| System state looks stale | The utility's own selected metric, selected device, or polling interval | Open the app's settings and compare them with Apple's matching setting. |
01Start with the feature that broke
macOS permission prompts are broad. The fix should not be. Write down the feature that failed before changing anything: screen sampling, notifications, global shortcuts, microphone input, app audio, login item state, or system monitoring.
Then map that feature to the smallest plausible access. A color picker that reads the color under your cursor needs screen access. A CPU alert needs notification permission and an enabled alert rule. A shortcut may only need the app's hotkey registration unless it is watching held keys or keyboard activity outside the active app.
This keeps you from turning on every permission because one button failed. It also gives you a clean rollback path if the first guess was wrong.
02Check screen access for color picking
Apple's Screen and System Audio Recording setting controls which apps and websites can access the screen and audio. That sounds heavy, but for a color picker the relevant part is simple: the app must be able to inspect visible pixels outside its own window.
TeenyColor uses Apple's NSColorSampler to show the system color-sampling interface, converts the picked color to sRGB, and copies the selected value to the pasteboard. Before the picker opens, its current Swift source records CGPreflightScreenCaptureAccess(). If the sampler returns no color and preflight access was unavailable, the app shows its screen-access recovery alert. If access was already available, returning no color is treated as a cancelled pick, not a permission failure.
If a Mac color picker cannot sample, open System Settings, Privacy & Security, Screen & System Audio Recording. Allow the app, quit it, and open it again. Test from a solid color. If the system picker appeared and you pressed Escape, trigger it again instead of resetting a permission that was already available.
The focused TeenyColor guide is Mac color picker Screen Recording permission. After sampling works again, the deeper color workflow still matters: setting a Mac color picker keyboard shortcut, checking image color shift after export, and reporting UI contrast bugs with color evidence.
03Check Notifications and Focus for alerts
A Mac utility can schedule a correct alert and still never put a banner on screen if notifications are disabled, the alert style is quiet, previews are suppressed, or Focus is silencing that app.
TeenyStat uses Apple's user notification framework for threshold alerts. Its source requests alert and sound authorization, checks enabled metrics on each collection tick, and presents banners, Notification Center entries, and sound even while the app is in the foreground. The monitor fires on a transition into its red tier and keeps a separate 10-minute cooldown for each metric.
That means "no alert" has several testable explanations. Notifications may be denied. Focus may hide the banner. The wrong metric may be enabled. The value may still be red after the first alert, so there is no new transition. A fresh crossing can also arrive during cooldown and be suppressed.
Start in System Settings, Notifications, then check the app. Confirm Allow Notifications, alert style, sound, and Notification Center behavior. Open the app and record the enabled metric plus its red threshold. The focused TeenyStat guide is Mac CPU and memory alerts not showing. The companion guides on CPU and memory alert thresholds and menu bar CPU monitors vs Activity Monitor cover the next decision.
04Check the app setting after macOS changes
macOS permission state is only half the story. A utility can have the right system permission and still be configured for the wrong feature.
For a color picker, check the default copy format, the pick shortcut, and whether the menu bar item is showing. TeenyColor supports formats such as Hex, lowercase hex, RGB, HSL, SwiftUI Color, UIColor, and CSS rgba, so a working pick can still feel wrong if the selected format changed.
For a system monitor, check which metric is shown in the menu bar, the threshold numbers, alert toggles, and whether you are looking at CPU, memory, or fan speed. TeenyStat's homepage and source show the intended scope: CPU usage, memory usage, fan speed where available, per-core CPU, rolling sparklines, threshold colors, and alerts. It is not a process list or network monitor. Use Activity Monitor when you need process-level proof.
05Record a before, action, and after state
A useful permission test has one row of evidence: the setting before the test, one action, the state afterward, and the visible result. For a color picker, record screen access, trigger one pick, then note whether the system sampler appeared and whether a value reached the pasteboard.
For an alert, record notification authorization, Focus, alert style, metric, threshold, and current value. Let the value sit below the red line, then cross it once. Record whether the alert reached the desktop, Notification Center, or neither. This separates a missing event from a hidden notification.
If the first test fails, change one layer. Retest the same action. A different workload or target pixel makes the comparison weaker.
06Restart only after you record the change
Some permissions and login-item changes need a relaunch. Some do not. A restart can hide the cause by changing several things at once.
Use this order: change one permission, quit and reopen the app, test the broken feature, then restart only if startup state is part of the problem. If the app is missing from the menu bar after a restart, switch to the Mac login items checklist instead of continuing to toggle privacy settings.
If the utility still fails after a targeted permission check, reinstalling may be reasonable. At that point you have useful evidence: the permission is allowed, delivery settings were checked, the app state matches the intended feature, and a relaunch did not fix it.
Five-minute permission reset routine
- Name the feature that failed and record its current app state.
- Open the one System Settings pane that controls the feature.
- Record whether macOS authorizes the app before changing the switch.
- Check delivery policy such as notification style, Notification Center, and Focus when the output is an alert.
- Run one controlled action and record the before value, after value, and result.
- Change one layer, quit and reopen the utility when required, then repeat the same test.
- Restart only if login state or startup behavior is part of the failure.
Common questions
Why did a Mac utility stop working after a permission change?
The failure may be system authorization, notification delivery, or the utility's own state. Check the exact feature against all three layers before resetting access.
Should I reinstall a Mac utility when permissions break?
Usually no. Record the current system setting and app state, relaunch once when required, and run a controlled test before you reset a permission or reinstall the utility.
Why do color pickers ask for Screen Recording permission?
A color picker that samples pixels outside its own window needs permission to inspect what is visible on screen. Apple's Screen and System Audio Recording setting controls that access.
Sources checked
- TeenyColor facts were checked against the TeenyColor homepage and local Swift source for
NSColorSampler, sRGB conversion, pasteboard copy, formats, hotkeys, local history, and Screen Recording failure messaging. - TeenyStat facts were checked against the TeenyStat homepage and local Swift source for CPU, memory, fan speed, notification authorization, foreground presentation, edge-triggered alerts, per-metric cooldown, and menu bar metric settings.
- Apple Support: Control access to screen and system audio recording on Mac.
- Apple Support: Change notification settings for apps.
- Apple Support: Set up a Focus on Mac.
- Apple Developer Documentation: NSColorSampler.
- Apple Developer Documentation: UNUserNotificationCenter.
- Apple Developer Documentation: requestAuthorization(options:completionHandler:).