github / github/copilot-sdk

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

Open
#772 2 comments 1 reaction 1 assignee Claimed by @jmoseley View on GitHub
batch runtime
Dominant language
Java
Stars
10.5k
Forks
1.5k
Avg merge
1d 11h
Merged PRs (30d)
127

Description

## 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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.