Responses API error handling reads error.message, but spec says message is top-level

Offen
#2,487 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@LuminaX-alt arbeitet bereits daran.

Seit 31.7.2025.

  • #6 von @LuminaX-alt — offen
  • #3038 von @raashish1601 — ohne Merge geschlossen
  • #3587 von @mayuriphad — ohne Merge geschlossen
  • #3934 von @KaiyiQuan — offen

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
57/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
api

Rechercherichtung

Lies die Logik zur Verarbeitung von Responses API-Ereignissen in src/openai/_streaming.py ungefähr bei Zeile 88 und vergleiche sie anschließend mit der in diesem Issue beschriebenen offiziellen Streaming-Fehlerantwort. Als erledigt gilt die Aufgabe, wenn die Meldung der obersten Ebene extrahiert wird, die Unterstützung für die verschachtelte Form error.message erhalten bleibt und das bestehende APIError-Verhalten beibehalten wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug sdk
Confirm this is an issue with the Python library and not an underlying OpenAI API
  • This is an issue with the Python library
Describe the bug

In the Responses API event handling logic, the SDK reads the error message from error.message. However, according to the official documentation, the message field is at the top level of the error object, not nested inside another error field.

SDK code (current behavior):

if sse.event == "error" and is_mapping(data) and data.get("error"):
    message = None
    error = data.get("error")
    if is_mapping(error):
        message = error.get("message")
    if not message or not isinstance(message, str):
        message = "An error occurred during streaming"

    raise APIError(
        message=message,
        request=self.response.request,
        body=data["error"],
    )

Official API response example:

{
  "type": "error",
  "code": "ERR_SOMETHING",
  "message": "Something went wrong",
  "param": null,
  "sequence_number": 1
}

Proposed fix: Change the error handling logic to read data["message"] (the top-level field) and data["error"]["message"] (for backward compatibility) instead of only data["error"]["message"].

To Reproduce
Code snippets

OS
Python version
Library version
Vorherrschende Sprache
Python
Sterne
32k
Forks
7.3k
Ø Merge
15 Std. 58 Min.
Gemergte PRs (30 T.)
170

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus openai/openai-python

Alle Issues in openai/openai-python

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

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