Skip to content

Preserve HTTP failures before checking control-plane response envelopes #35

Description

@rmcdaniel

Operator problem

The published-artifact diagnosis drill in durable-workflow/.github#143 exhausted a bounded MySQL system tablespace. A workflow start returned HTTP 500. Published CLI 2.1.2 instead reported invalid control-plane response version for [/workflows]; expected [2], got [missing] and exit code 1. This points the investigator toward a protocol mismatch rather than the failed server operation.

The current ServerClient::decode() handles 401/403 before normalizing protocol envelopes, but other HTTP errors reach normalizePayload() before their status is classified. A generic Laravel JSON error without the success envelope therefore masks the actual HTTP error.

Acceptance

  • Preserve HTTP status and useful error details for non-success responses without a Server success envelope, including JSON, HTML and empty proxy responses.
  • Keep normal success-response protocol checks strict. Preserve existing typed authentication, validation, rejection, compatibility and retryable-backend behavior.
  • Include regressions for the observed workflow start failure and the error response shapes that exercise this ordering.
  • Publish the qualified patch and repeat the actual storage-pressure operation with the published CLI.

Frozen reproduction: Server 2.4.30, CLI 2.1.2, Waterline 2.0.8, MySQL 8.4.5. The isolated database uses innodb_file_per_table=OFF and ibdata1:32M:autoextend:max:64M. A bounded filler table reaches the limit, then a 96-KiB synthetic workflow input makes the workflow_runs insert fail with MySQL error 1114. Restoring a bounded 128-MiB limit recovers previously acknowledged work. No customer environment or paid test host is involved. Server's storage-specific explanation is a separate finding from the CLI's response-ordering defect.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    intake:approvedCurrent issue title and body revision is approved for authority intakepriority:P1High-priority product or release risk

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions