The largest serialised body a log record carries. A body above it
is OMITTED whole — never cut — and the record names its size, so a
reader knows what was there and how big it was.
Derivation, not taste: the host that reads these records back (a
Homey diagnostic report) keeps about the last hundred LINES of an
app's stdout (measured on a 46.7.5 report, 2026-10-12: exactly 100,
cut mid-object) and presumably as many of its stderr, and uploads
the report through a request-body limit — Athom's tracker holds a
report refused with 413 (homey-apps-sdk-issues#237), and a default
nginx caps a body at 1 MiB. Two streams of a hundred records of at
most 4 KiB each stay under that limit with room for the records'
own fields. A Classic /User/ListDevices or a Home /context body
runs past the bound on purpose: the SDK-authored lines name what
those bodies hold, and a report that reaches its reader beats one
that holds everything and never uploads. Measured in UTF-8 bytes of
the redacted JSON.
The largest serialised body a log record carries. A body above it is OMITTED whole — never cut — and the record names its size, so a reader knows what was there and how big it was.
Derivation, not taste: the host that reads these records back (a Homey diagnostic report) keeps about the last hundred LINES of an app's stdout (measured on a 46.7.5 report, 2026-10-12: exactly 100, cut mid-object) and presumably as many of its stderr, and uploads the report through a request-body limit — Athom's tracker holds a report refused with 413 (homey-apps-sdk-issues#237), and a default nginx caps a body at 1 MiB. Two streams of a hundred records of at most 4 KiB each stay under that limit with room for the records' own fields. A Classic
/User/ListDevicesor a Home/contextbody runs past the bound on purpose: the SDK-authored lines name what those bodies hold, and a report that reaches its reader beats one that holds everything and never uploads. Measured in UTF-8 bytes of the redacted JSON.