-
Notifications
You must be signed in to change notification settings - Fork 767
Open
Labels
Description
Summary
When using GitHub.Copilot.SDK for .NET (v0.1.21) with WireApi = "responses", the SDK may retry or continue a session using response item IDs (e.g. rs_...) even though the underlying request is sent with store=false.
Because the .NET SDK does not expose any way to set store=true, this results in unrecoverable 400 errors:
CAPIError: 400 Item with id 'rs_...' not found.
Items are not persisted when `store` is set to false.
Try again with `store` set to true, or remove this item from your input.
At the moment, there is no way for a .NET SDK user to resolve this, even though the error message explicitly instructs to set store=true.
Environment
- GitHub.Copilot.SDK: 0.1.21
- .NET: net8.0
- Provider: Azure OpenAI
- Wire API: responses
- Model:
gpt-5.2-codex - ReasoningEffort:
xhigh
Root Cause
- The Responses API requires
store=trueif response items are later referenced (e.g. via retry or continuation). - The .NET SDK MessageOptions does not expose a
Storeproperty:
public class MessageOptions
{
public string Prompt { get; set; }
public List<UserMessageDataAttachmentsItem>? Attachments { get; set; }
public string? Mode { get; set; }
}- As a result, all requests are effectively sent with
store=false. - The SDK/runtime still retries or chains requests using response item IDs (
rs_...), which cannot be resolved.
This creates a hard failure with no user-level workaround.