[Bug] Raycast process crash when quickLook and detail props used together on List.Item with isShowingDetail={true}
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 7.8k
- Forks
- 6.9k
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 442
Description
Description
Using the quickLook prop alongside detail on the same List.Item when isShowingDetail={true} causes intermittent full Raycast process crashes (not extension errors) when pressing Cmd+Y to toggle Quick Look.
Minimal Reproduction
import { List, Action, ActionPanel } from "@raycast/api";
import { useEffect } from "react";
import { writeFileSync } from "fs";
const ITEMS = ["alpha", "bravo", "charlie", "delta", "echo"];
const QL_PATH = "/tmp/ql-test.txt";
export default function Command() {
useEffect(() => {
writeFileSync(QL_PATH, "Quick Look test content.\nLine two.\n");
}, []);
return (
<List isShowingDetail={true}>
{ITEMS.map((name) => (
<List.Item
key={name}
title={name}
quickLook={{ path: QL_PATH, name: "test.txt" }}
detail={<List.Item.Detail markdown="**Detail panel content**" />}
actions={
<ActionPanel>
<Action.ToggleQuickLook />
</ActionPanel>
}
/>
))}
</List>
);
}
Steps to Reproduce
- Create an extension with the code above
- Open Raycast, run the command
- Select any item, press Cmd+Y
- Raycast crashes — in our testing, crashed on the 2nd attempt
The crash is intermittent and timing-dependent, not data-dependent. The same file at the same path may crash on the first try and succeed on the second.
What We Tested and Ruled Out
| Change | Result |
|---|---|
Remove quickLook prop entirely |
Zero crashes |
Remove detail prop, keep quickLook |
No crashes |
| Same file path every time | Still crashes — not data-dependent |
Dynamic isShowingDetail (false→true transition) |
Made crashes more frequent |
Static isShowingDetail={true} |
Reduced frequency but did not eliminate |
| Minimal 30-line static extension (no async, no subprocess, no dynamic data) | Still crashes — eliminates all app-specific code as a factor |
Notes
The Raycast docs never show quickLook and detail used together on the same List.Item. This appears to be an unhandled conflict in the native layer when both the detail panel and Quick Look window compete for presentation.
Prior Quick Look native-layer fixes suggest this area has had similar issues before:
- v1.30.0 — "Fixed crash when switching Quick Look to full-screen"
- v1.30.2 — "Updating list
isShowingDetailproperty has been fixed" - v1.67.0 — "
Action.ToggleQuickLooknow expands paths starting with~"
Expected Behavior
Pressing Cmd+Y on a List.Item that has both quickLook and detail props should either open Quick Look without crashing, or the API should document/enforce mutual exclusivity between the two props.
Environment
- macOS Sequoia 15.5
- Raycast latest stable
@raycast/api^1.93.2
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the minimal TypeScript reproduction in the issue using @raycast/api, then investigate the native presentation path triggered by Cmd+Y when List.Item has both quickLook and detail while isShowingDetail is true. Reproduce the intermittent crash and determine whether Quick Look should open safely or the two props should be made mutually exclusive; verify the chosen behavior against the listed test variations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100