router-for-me/CLIProxyAPI · error

failed to read Codex live multipart field: %w

Error message

failed to read Codex live multipart field: %w

What it means

Error "failed to read Codex live multipart field: %w" thrown in router-for-me/CLIProxyAPI.

Source

Thrown at internal/client/codex/live/live.go:640

		return nil, "", "", errors.New("Codex live multipart boundary is missing")
	}

	reader := multipart.NewReader(bytes.NewReader(body), boundary)
	var sdp *string
	var session json.RawMessage
	model := ""
	for {
		part, errPart := reader.NextPart()
		if errors.Is(errPart, io.EOF) {
			break
		}
		if errPart != nil {
			return nil, "", "", fmt.Errorf("failed to parse Codex live multipart body: %w", errPart)
		}
		partBody, errRead := io.ReadAll(part)
		errClose := part.Close()
		if errRead != nil {
			return nil, "", "", fmt.Errorf("failed to read Codex live multipart field: %w", errRead)
		}
		if errClose != nil {
			return nil, "", "", fmt.Errorf("failed to close Codex live multipart field: %w", errClose)
		}

		switch part.FormName() {
		case "sdp":
			value := string(partBody)
			sdp = &value
		case "session":
			if !json.Valid(partBody) {
				return nil, "", "", errors.New("Codex live session field must contain valid JSON")
			}
			session = append(json.RawMessage(nil), partBody...)
			model = modelFromJSON(partBody)
		}
	}
	if sdp == nil {

View on GitHub (pinned to 78f0c4079e)

Solutions

  1. Verify each multipart part is complete and readable.
  2. Check the wrapped error for truncated multipart data.

When it happens

Trigger: Thrown at internal/client/codex/live/live.go:640 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of router-for-me/CLIProxyAPI@78f0c4079e (2026-08-15). Data as JSON: /api/errors/94136d111fcbe431. Report an issue: GitHub.