Skip to content

FCP 11.0 crashes frequently when MCP server triggers generate_captions (silent termination) #80

Description

@lovexiaoyan

Bug Description

Final Cut Pro 11.0 (build 430149) silently terminates (no crash dialog, no .crash file in DiagnosticReports) when the MCP server calls generate_captions() after set_caption_words() with ~110+ Chinese word-timed entries. The process appears to be SIGKILLed by the system (jetsam / memory pressure), as no exception handler fires.

The first call to generate_captions() in a session succeeds. The crash typically occurs after FCP is restarted and generate_captions() is called in a second session where persisted caption data gets restored, suggesting state accumulation across sessions.

Environment

  • macOS: 26.5.1 (arm64)
  • Hardware: Mac mini M4, 16GB RAM
  • FCP Version: 11.0 (build 430149) — lifetime/perpetual license
  • SpliceKit Version: 3.3.8
  • Installation: DMG → patched copy at ~/Applications/SpliceKit/Final Cut Pro.app
  • MCP Server: Python venv running /Applications/SpliceKit.app/Contents/Resources/mcp/server.py

Steps to Reproduce

  1. Launch SpliceKit-patched FCP 11.0
  2. Import a ~57s MP4 with Chinese voice-over
  3. Delete leading silence (~12s), leaving ~43s of content on timeline
  4. Call set_caption_words() with 113 Chinese words with precise word-level timestamps (from Whisper turbo model)
  5. Call generate_captions(style="clean_minimal", animation="fade", max_words=3, word_highlight=True)
  6. FCP silently terminates — no crash dialog, just disappears

Also reproduced with style="bold_pop", so it does not appear style-specific.

Logs

From ~/Library/Logs/SpliceKit/splicekit.log (~7500 lines in affected session):

1. FCP 11.0 compatibility issue at startup:

[00:06:57.545] [SpliceKit] [Favorites] Exception injecting favorites folder: 
-[FFBKEffectLibraryFolder isSubcategoryAll]: unrecognized selector sent to instance 0xbbbbcde90

This repeats 4× — isSubcategoryAll selector is missing from FFBKEffectLibraryFolder on FCP 11.0.

2. Caption generation writes back 113 titles word-by-word:

[00:07:12.599] [Captions][RuntimeTitle] Live effect template summary: runs=2 [0]{看看 下 } ...
[00:07:12.599] [Captions][RuntimeTitle] Applying attributed text summary: runs=2 ...
[00:07:12.599] [Captions][RuntimeTitle] FFMotionEffect setText:forField: text="看看 下 午" ...

These attributed-string operations repeat for every word in all 113 titles, totalling ~6800 log lines. Each title gets 3 write cycles (full → word-level → word-highlight pivot).

3. No crash handler report — Sentry crash handler is enabled at startup but termination is too abrupt to capture a report.

Suspected Cause

I suspect this is one of:

  1. Jetsam / memory pressure — FCP 11.0 on 16GB M4 gets SIGKILLed by macOS when 113 Motion title clips with attributed strings and word-highlight channels consume too much memory.
  2. FFBKEffectLibraryFolder compatibility — the startup exception (isSubcategoryAll unrecognized selector) may indicate broader FCP 11.0 API differences that manifest later during caption rendering.
  3. Caption persistence state leak — the crash happens on the second launch after captions are persisted and restored, not the first.

Expected Behavior

  • Caption generation should complete without crashing FCP 11.0, especially for 100+ word Chinese content
  • If FCP 11.0 lacks the API surface needed, generate_captions() should at minimum return a clear error instead of crashing

Suggestion

Would it be possible to offer a lightweight caption mode for FCP 11.0 users that uses native FCP captions (FFAnchoredCaption / caption lane) instead of Motion title clips? The generate_native_captions() approach would likely avoid the Motion title rendering overhead entirely.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions