close
Skip to content

rc.8 regression: Browser Mode still hard-breaks when configured storage-state file is missing (#2209 reproduced) #2491

Description

@bolichen97

What

Reproduced live on v0.2.0-rc.8 (insider) during pre-stable validation: the playwright MCP config (playwright-config.json) referenced a contextOptions.storageState file (playwright-storage-state.json) that does not exist on disk. Every browser_* tool call failed with ENOENT before the browser context could be built — Browser Mode was completely unusable on this install.

This is the same failure mode as #2209, which was closed as completed via 501cbe2 on 2026-08-08. Since it reproduced on rc.8 on 2026-08-10, either:

  1. the fix did not make the rc.8 cut, or
  2. the fix only covers freshly generated configs and does not repair/validate a pre-existing config that already points at a missing storage-state file (upgrade path).

Recovery path is not user-discoverable

Getting out of this state required:

  1. kirocrew browse setup to regenerate a clean config (removes the storage-state reference), and
  2. killing the running playwright-mcp processes, because they cache the old config — which also kills the session's stdio MCP transport ("Transport closed" error), forcing a session restart.

No ordinary user will find this sequence. Until they do, every browser operation fails with an opaque ENOENT.

Expected

On Browser Mode startup (or config load), if the configured storage-state file is missing, either:

  • seed it with an empty state ({"cookies":[],"origins":[]}), or
  • drop/skip the storageState option gracefully and log a warning.

Additionally, the upgrade path should validate existing configs, not just newly generated ones.

Environment

  • KiroCrew v0.2.0-rc.8 (insider channel), Linux
  • Headless --config path (no Chrome extension pairing)
  • Found during full RC-8 release validation (CLI/API/MCP/UI test pass)

Ask before stable

If the fix from #2209 is in the release branch, please verify it handles the pre-existing-config case; if it isn't, cherry-pick it. This hard-breaks a headline feature out of the box.

Metadata

Metadata

Assignees

Labels

area: appsApp Store, app-sdk, MCP apps, app runtimeauto-fixableTriage: mechanical fix, automated pipeline will handlebugSomething is not workingclaimedAn automated fix is in progressenhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions