diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index 270c11049e0f..3a2e2234f331 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -2059,10 +2059,13 @@ function WebSearch(props: ToolProps) { function Task(props: ToolProps) { const { navigate } = useRoute() const sync = useSync() + const [sessionMissing, setSessionMissing] = createSignal(false) onMount(() => { if (props.metadata.sessionId && !sync.data.message[props.metadata.sessionId]?.length) - void sync.session.sync(props.metadata.sessionId) + sync.session.sync(props.metadata.sessionId).catch(() => { + setSessionMissing(true) + }) }) const messages = createMemo(() => sync.data.message[props.metadata.sessionId ?? ""] ?? []) @@ -2121,11 +2124,14 @@ function Task(props: ToolProps) { complete={props.input.description} pending="Delegating..." part={props.part} - onClick={() => { - if (props.metadata.sessionId) { - navigate({ type: "session", sessionID: props.metadata.sessionId }) - } - }} + onClick={ + props.metadata.sessionId && !sessionMissing() + ? () => { + const sessionID = props.metadata.sessionId + if (sessionID) navigate({ type: "session", sessionID }) + } + : undefined + } > {content()}