Skip to content

Published Apache image rejects advertised external-payload sizes with HTTP 200 and PHP warning output #141

Description

@rmcdaniel

Observed

The published Server 2.3.1 image advertises a default 64 MiB runtime external-payload limit, but its PHP configuration retains post_max_size=8M and display_errors output. A direct authenticated POST /api/external-payloads/v1 with a valid 67,108,864-byte SDK-encoded Avro blob returns HTTP 200, not 201 or a structured rejection:

Warning: PHP Request Startup: POST Content-Length of 67108864 bytes exceeds the limit of 8388608 bytes ...
{"message":"The POST data is too large."}

Reproduced twice through the actual Apache/mod_php HTTP surface with the published image, not Laravel in-process tests. No upload reference was created; existing workflow and activity data remained intact. Server revision d9bed7072ae523978f16717f6b92bf669d5208f5, bundled Workflow 2.0.6. Image index sha256:9c52aa1252a4f19d7ec20adbf64e95d7b5bddf369412844f7b24e804c30eef2b.

Required Outcome

  • Align the actual PHP/SAPI ingress limit with the explicitly configured runtime transport contract. Do not claim 64 MiB support merely by raising an INI value: verify the complete upload, fetch and retained-workflow consumption path with bounded memory.
  • Prevent PHP startup/runtime warnings from corrupting API bodies or turning failures into apparent success.
  • Oversized requests return the documented non-success status and structured response, including ordinary JSON requests and the external-upload endpoint.
  • Add real published-image/Apache regression coverage. In-process Laravel tests alone do not exercise PHP startup limits.
  • Exercise exact-limit, over-limit and concurrent requests, then verify ordinary requests and previously committed results still work. Preserve authentication, namespace isolation, admission and durable state.

Accepted follow-up from storage qualification. Investigate the complete size/memory boundary before publishing a fix so a single INI change does not conceal the next failure.

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

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions