Skip to content

session.resume fails with 'Session file is corrupted' when attachments field is null #772

@bsauvage1

Description

@bsauvage1

Bug Report

Summary

Resuming a session via session.resume fails with a JSON-RPC error when the saved session file has attachments: null. The SDK now expects attachments to be an array, but previously saved sessions store null.

Error

JSON-RPC Error -32603: Request session.resume failed with message:
Session file is corrupted (line 24: data.attachments: Expected array, received null)

Steps to Reproduce

  1. Create a session (with SDK version that stores attachments: null in the session file)
  2. Save the session ID
  3. On a new run, call session.resume with the saved session ID
  4. Observe the error above

Expected Behavior

Either:

  • The SDK accepts null as a valid (empty) value for attachments during resume (backwards-compatible), or
  • A more graceful error that allows the caller to detect the corruption and fall back to starting a new session

Actual Behavior

Resume throws a hard JSON-RPC -32603 error that cannot be easily distinguished from other fatal errors, forcing the caller to start a fresh session without a clean signal.

Environment

  • github-copilot-sdk version: 0.1.32
  • Python: 3.12.3
  • OS: Linux (Ubuntu 24.04)

Suggested Fix

Treat null as equivalent to [] for the attachments field during session deserialization, to maintain backwards compatibility with older session files.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions