github / github/copilot-sdk

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

Ouverte
#772 2 commentaires 1 réaction 1 personne assignée Réclamée par @jmoseley Voir sur GitHub
batch runtime
Langage dominant
Java
Étoiles
10.5k
Forks
1.5k
Merge moyen
1 j 11 h
PR mergées (30 j)
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.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.