github / github/copilot-sdk

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

オープン
#772 コメント 2 件 リアクション 1 件 担当者 1 名 @jmoseley が担当を希望しています GitHub で見る
batch runtime
主要言語
Java
スター
10.5k
フォーク
1.5k
平均マージ
1日 11時間
マージ済み PR(30日)
127

説明

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

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。