Skip to content

Service crashes on missing session file (NotFoundError) #7773

Description

@KostaGorod

Bug Report: Service crashes on missing session file (NotFoundError)

Version: 1.1.13

Environment:

  • OS: Linux (systemd user service)
  • Runtime: Bun

Description:
The opencode web service crashes with an unhandled NotFoundError when attempting to access a session file that doesn't exist. The error is not gracefully handled, causing the entire process to exit.

Error:

NotFoundError: NotFoundError
 data: {
  message: "Resource not found: /home/ai/.local/share/opencode/storage/session/global/ses_463204b74ffe0r0WNtVpfIxB5E.json",
},
      at <anonymous> (src/storage/storage.ts:204:15)

Expected behavior:
Missing session files should be handled gracefully - either by:

  1. Returning null/undefined and letting the caller handle the missing session
  2. Creating a new session if the referenced one doesn't exist
  3. Logging a warning and continuing operation

Actual behavior:
Unhandled exception crashes the web server process.

Suggested fix:
In src/storage/storage.ts:204, wrap the file read in a try-catch or check for file existence before reading, returning a graceful error instead of throwing.

Workaround:
Configure systemd service with Restart=always to auto-recover from crashes.

Activity

  1. deblanco commented on Jan 14, 2026

    @deblanco

    same issue here

  2. oussamadouhou commented on Jan 19, 2026

    @oussamadouhou

    Additional Context: Often Caused by #8538

    In many cases I've observed, the session file exists but is looked up in the wrong directory due to project ID mismatch (#8538).

    Evidence from SDK/server debugging

    # Session actually exists here:
    $ find ~/.local/share/opencode/storage/session -name "ses_4288bb2f8ffe*.json"
    /home/user/.local/share/opencode/storage/session/eb6c255.../ses_4288bb2f8ffebHuFX7NUnv4i80.json
    
    # But the error shows lookup in global/:
    NotFoundError: Resource not found: /home/user/.local/share/opencode/storage/session/global/ses_4288bb2f8ffebHuFX7NUnv4i80.json

    The session was created with the correct project-specific path, but subsequent operations (via SDK calls without directory context) resolve to global/ and fail.

    Relationship to #8538

    This crash is often a symptom of #8538 (session lookup uses wrong project ID). Fixing #8538 would prevent many of these crashes because the session would be found.

    Still Valuable as Defense-in-Depth

    Even after #8538 is fixed, graceful error handling here is valuable for:

    • Truly deleted/corrupted sessions
    • Race conditions during session cleanup
    • Manual file system modifications

    Suggested: Return null or a typed error that callers can handle, rather than crashing the service.

    Update: I've submitted PR #9474 to fix #8538 with cross-project session lookup.

  3. github-actions commented on Mar 26, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 90 days of no activity. If the issue is still relevant please open a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

webRelates to opencode on web / desktop

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions