github / github/copilot-sdk

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

Offen
#772 2 Kommentare 1 Reaktion 1 zugewiesene Person Beansprucht von @jmoseley Auf GitHub ansehen
batch runtime
Vorherrschende Sprache
Java
Sterne
10.5k
Forks
1.5k
Ø Merge
1 T. 11 Std.
Gemergte PRs (30 T.)
127

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.