A profile editor can save correctly and then show an error because its frontend tries to parse an empty response as JSON. The business problem is misleading feedback that encourages customers to submit again. Agree the response contract before asking for more aggressive retry logic.
Source-bound fact
A204 response has no content. The client must not expect a JSON representation in that response. Official reference · Checked 17 October 2026.
Filled synthetic acceptance example
Synthetic teaching example, not a client case or a real-platform assessment. On narrow screens, scroll to read the complete table.
| Input | Check basis | Expected |
|---|---|---|
| 204; empty body | no representation | save acknowledgement; no JSON parse |
| 200; application/json; valid object | documented representation | parse the agreed object |
| 500; empty body | failure status | do not classify as saved |
Supplier acceptance procedure
- Ask for status, content type and body expectations for every documented save outcome.
- Use an authorised test record to compare the response with the actual stored value, including the empty-success path.
- Check the UI does not offer a duplicate automatic retry after a confirmed save; retain the original operation reference.
Interpret the output
The fixture returns a no-body branch for 204 and does not pretend that parsing proves persistence. A supplier must separately show that the permitted test record changed. Empty error responses remain errors; do not treat every response with no text as success.
Explicit limits
No production saves, retry engine or storage proof. This differs from draft expiry and stale-save concurrency: it tests how a completed response is interpreted.
Replay the finite teaching model
Save both files in one folder and use Node22 or newer. JSON contains inputs and expected results. The script processes synthetic data only, with no network, credentials, payment or paid API calls. Passing is not evidence that a real integration passed acceptance.
Filled inputs and expectations · Inspectable teaching script
node check.mjs empty-success-response-ui-handover.json