OXYGENHUB

A push of one ordinary change is refused 413 by Cloudflare (over 100 MB in one request) issue #133 closed: completed andymccall opened this · 1 comment

andymccall

Found 2026-10-24 22:20 pushing oxygenhub-android's set-up change (a7b9f0bd: 1,144 files changed, mostly removals of tracked Gradle/build caches, ~2,400 lines added) to https://oxygenhub.io/andymccall/oxygenhub-android: oxy push fails with HTTP 413: <html>…413 Payload Too Large (Cloudflare caps a request at 100 MB). The repository's .oxy/objects is 126 MB, 79 MB of it loose objects written tonight by status snapshots of the (then tracked) cache files.

Problems:

  1. The push sends far more than the change needs, or one change's objects exceed what one request can carry: push batches by changes (oxygen#95), never by bytes, so one large change cannot be split. Batches should also be bounded by bytes (stay well under 100 MB per request) and the server take objects in parts regardless of changes.
  2. The error is Cloudflare's HTML page printed raw; oxy should say what happened ("the push is N MB in one request; the hub's proxy takes at most 100 MB") and what to do.
  3. Find out what the 100+ MB are (likely blobs of files that were snapshotted while tracked and then removed, sent although no change references them).

Not pushed yet; the change is kept locally in ~/development/oxygenhub-android.

andymccall set labels bug ·

closed by change d3b270909c78 ·

andymccall

Confirmed on the real case (2026-10-25 00:10): oxygenhub-android's pushes went through with oxy at 8db4255e: parts 1-2 of changes, then the heavy part's 2,272 blobs and chunks ahead in two object-only parts, then the last 9 changes and the bookmark. a7b9f0bd (issue #1), which also read INVALID (issue #134), was re-sealed at the push and verifies (agent:claude). What the 100+ MB were: the blobs and chunks of the tracked Gradle/build cache files that change removes (they go with it), not loose snapshot objects.