mirror of
https://github.com/openai/codex.git
synced 2026-08-30 14:19:08 +00:00
## What changed - Recognize `misalignment_policy_violation` errors from response streams and HTTP 400 or 403 responses. - Preserve the upstream message, use a fallback for blank messages, and treat the error as non-retryable. - Expose `misalignmentPolicyViolation` through the app-server protocol and generated schemas so turns fail with a typed terminal error. ## Testing - Cover streamed and HTTP policy violations, fallback messages, retry behavior, and app-server turn completion. GitOrigin-RevId: fd3485bf0be7bfe3d51c078bbc36a081692fd57f
201 lines
5.3 KiB
JSON
Generated
201 lines
5.3 KiB
JSON
Generated
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"definitions": {
|
|
"CodexErrorInfo": {
|
|
"description": "This translation layer make sure that we expose codex error code in camel case.\n\nWhen an upstream HTTP status is available (for example, from the Responses API or a provider), it is forwarded in `httpStatusCode` on the relevant `codexErrorInfo` variant.",
|
|
"oneOf": [
|
|
{
|
|
"enum": [
|
|
"contextWindowExceeded",
|
|
"sessionBudgetExceeded",
|
|
"usageLimitExceeded",
|
|
"serverOverloaded",
|
|
"cyberPolicy",
|
|
"misalignmentPolicyViolation",
|
|
"internalServerError",
|
|
"unauthorized",
|
|
"badRequest",
|
|
"threadRollbackFailed",
|
|
"sandboxError",
|
|
"other"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"httpConnectionFailed": {
|
|
"properties": {
|
|
"httpStatusCode": {
|
|
"format": "uint16",
|
|
"minimum": 0.0,
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"httpConnectionFailed"
|
|
],
|
|
"title": "HttpConnectionFailedCodexErrorInfo",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"description": "Failed to connect to the response SSE stream.",
|
|
"properties": {
|
|
"responseStreamConnectionFailed": {
|
|
"properties": {
|
|
"httpStatusCode": {
|
|
"format": "uint16",
|
|
"minimum": 0.0,
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"responseStreamConnectionFailed"
|
|
],
|
|
"title": "ResponseStreamConnectionFailedCodexErrorInfo",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"description": "The response SSE stream disconnected in the middle of a turn before completion.",
|
|
"properties": {
|
|
"responseStreamDisconnected": {
|
|
"properties": {
|
|
"httpStatusCode": {
|
|
"format": "uint16",
|
|
"minimum": 0.0,
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"responseStreamDisconnected"
|
|
],
|
|
"title": "ResponseStreamDisconnectedCodexErrorInfo",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"description": "Reached the retry limit for responses.",
|
|
"properties": {
|
|
"responseTooManyFailedAttempts": {
|
|
"properties": {
|
|
"httpStatusCode": {
|
|
"format": "uint16",
|
|
"minimum": 0.0,
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"responseTooManyFailedAttempts"
|
|
],
|
|
"title": "ResponseTooManyFailedAttemptsCodexErrorInfo",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"description": "Returned when `turn/start` or `turn/steer` is submitted while the current active turn cannot accept same-turn steering, for example `/review` or manual `/compact`.",
|
|
"properties": {
|
|
"activeTurnNotSteerable": {
|
|
"properties": {
|
|
"turnKind": {
|
|
"$ref": "#/definitions/NonSteerableTurnKind"
|
|
}
|
|
},
|
|
"required": [
|
|
"turnKind"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"activeTurnNotSteerable"
|
|
],
|
|
"title": "ActiveTurnNotSteerableCodexErrorInfo",
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"NonSteerableTurnKind": {
|
|
"enum": [
|
|
"review",
|
|
"compact"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"TurnError": {
|
|
"properties": {
|
|
"additionalDetails": {
|
|
"default": null,
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"codexErrorInfo": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/CodexErrorInfo"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"message"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/TurnError"
|
|
},
|
|
"threadId": {
|
|
"type": "string"
|
|
},
|
|
"turnId": {
|
|
"type": "string"
|
|
},
|
|
"willRetry": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"error",
|
|
"threadId",
|
|
"turnId",
|
|
"willRetry"
|
|
],
|
|
"title": "ErrorNotification",
|
|
"type": "object"
|
|
} |