Skip to content

"Take meeting notes" silently fails #771

Description

@akccie

Bug report: "Take meeting notes" silently fails

App: rowboat.app (macOS desktop)
Reported by: Guru / installationId 4272aba6-e20e-4482-abc7-6be10e626e52
Date: 2026-07-21

Summary

Clicking "Take meeting notes" starts to initiate (screen/audio capture briefly
spins up) then silently stalls — no recording happens, no error is shown, and
no meeting note is ever produced.

Root cause

The app needs to send an AppleEvent (likely to detect the active meeting
app/browser tab) but its code signature is missing the
com.apple.security.automation.apple-events entitlement. Under the hardened
runtime, macOS doesn't just deny this — it refuses to even show a permission
prompt, so the failure is completely invisible to the user in Settings >
Privacy & Security > Automation as well as in the app UI.

Evidence

macOS unified log (tccd), captured at the moment of clicking "Take meeting
notes":

tccd[171]: Prompting policy for hardened runtime; service: kTCCServiceAppleEvents
requires entitlement com.apple.security.automation.apple-events but it is missing
for responsible={...rowboat...} accessing={...Rowboat Helper (Plugin)...}
requesting={com.apple.appleeventsd}

Confirmed via codesign -d --entitlements - on /Applications/rowboat.app:

com.apple.security.cs.allow-jit
com.apple.security.device.audio-input
com.apple.security.device.screen-capture

com.apple.security.automation.apple-events is absent from both the main app
and Rowboat Helper (Plugin).app.

Supporting detail: ScreenCaptureKit logs show a stream output added then
removed within ~50ms of the click (observed twice), consistent with capture
starting and then aborting because the automation step it depends on can
never complete.

Additional context found during investigation

The app's own updater was separately found in a fail-loop: the LaunchAgent
(~/Library/LaunchAgents/com.rowboat.autostart.plist) has KeepAlive: true,
which instantly relaunched the app the moment it quit to let the Squirrel/
ShipIt installer apply an update. The installer then always saw "1 running
instance" and aborted (SQRLInstallerErrorDomain Code=-9 "App Still Running Error"), so the app came back up still flagged for the same update — looping
every 3-14 minutes. Worked around locally (unload LaunchAgent, quit, manual
relaunch, reload LaunchAgent), but worth checking whether the entitlement fix
below has actually shipped in the latest build, since the update loop may have
been preventing updates from landing at all.

Confirmed at the source level — the packaged app ships an unpacked source
tree (Contents/Resources/app). Its build-time entitlements.plist (used by
forge.config.cjs for osxSign) contains only:

<key>com.apple.security.cs.allow-jit</key><true/>
<key>com.apple.security.device.audio-input</key><true/>
<key>com.apple.security.device.screen-capture</key><true/>

No com.apple.security.automation.apple-events key — so this isn't a stale
build issue, it's missing from the entitlements file itself.

Ask

Add com.apple.security.automation.apple-events to the app's entitlements
(main app + helper), plus the matching NSAppleEventsUsageDescription and
target-application keys in Info.plist, and re-sign/re-notarize.

Related upstream reports (github.com/rowboatlabs/rowboat, public repo)

  • [Feature Request] Add macOS Automation entitlement to enable apple-mcp (iCloud Mail/Calendar) integration #543 — "[Feature Request] Add macOS Automation entitlement to enable
    apple-mcp (iCloud Mail/Calendar) integration" — open. Same missing
    entitlement, different symptom/feature. This report is direct evidence the
    same fix also unblocks meeting notes.
  • Take meeting Notes Not working #656 — "Take meeting Notes Not working" — open. Same top-level symptom
    reported for Mac M4. That thread resolved to a different cause (missing
    Deepgram API key in ~/.rowboat/config/deepgram.json), which is a separate,
    legitimate failure mode — but doesn't explain the "click does nothing, no
    prompt at all" behavior, which the missing entitlement does.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions